下面是“Python3+django2.0+apache2+ubuntu14部署网站上线的方法”的完整攻略。
准备工作
在开始之前,需要先准备好以下内容:
- 一台Ubuntu 14的服务器。
- Python 3 和 pip 已安装。
- Django 2.0 和其他所需的Python库已安装。
- Apache2 和 mod_wsgi已安装。
步骤一:创建Django项目
- 创建一个Django项目
使用以下命令创建一个新的Django项目:
django-admin startproject mysite
- 创建Django App
使用以下命令创建一个新的Django App:
python manage.py startapp MyApp
步骤二:配置Apache和mod_wsgi
- 安装mod_wsgi
使用以下命令安装mod_wsgi:
sudo apt-get install libapache2-mod-wsgi-py3
- 配置Apache
使用以下命令打开Apache的主配置文件:
sudo nano /etc/apache2/apache2.conf
在文件末尾添加以下内容:
WSGIScriptAlias / /var/www/mysite/mysite/wsgi.py
WSGIPythonPath /var/www/mysite
<Directory /var/www/mysite/mysite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
- 创建WSGI文件
在mysite/mysite目录下创建一个名为wsgi.py的文件:
```python
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
application = get_wsgi_application()
```
步骤三:部署Django项目
- 将Django项目复制到服务器
将Django项目文件拷贝到服务器上的/var/www/目录下:
sudo cp -r /path/to/your/django/project /var/www/
- 修改Django项目文件夹的权限
使用以下命令修改文件夹的权限:
sudo chown -R :www-data /var/www/mysite/
sudo chmod -R 775 /var/www/mysite/
- 启动Apache
使用以下命令启动Apache:
sudo service apache2 restart
- 访问网站
在浏览器中输入你的服务器IP地址或域名,应该可以看到你的Django项目已经成功部署。
示例一:在Django项目中使用SQLite
- 安装SQLite
使用以下命令安装SQLite:
sudo apt-get install sqlite3
- 修改数据库设置
在mysite/settings.py文件中,将数据库配置修改为以下内容:
python
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
- 创建Django模型
在MyApp/models.py文件中,编写一个简单的Django模型:
```python
from django.db import models
class MyModel(models.Model):
name = models.CharField(max_length=100)
age = models.IntegerField()
def __str__(self):
return self.name
```
- 创建数据库表
使用以下命令创建数据库表:
python manage.py makemigrations
python manage.py migrate
此时,SQLite数据库表已经被创建。
- 在视图中展示数据
在MyApp/views.py文件中,编写一个简单的Django视图:
```python
from django.shortcuts import render
from .models import MyModel
def myview(request):
mydata = MyModel.objects.all()
return render(request, 'mytemplate.html', {'mydata': mydata})
```
在MyApp/templates/目录下创建一个名为mytemplate.html的模板文件:
```html
-
{% for item in mydata %}
- {{ item }}
{% endfor %}
```
- 将视图添加到URL映射中
在mysite/urls.py文件中,将视图添加到URL映射中:
```python
from django.urls import path
from MyApp.views import myview
urlpatterns = [
path('myview/', myview, name='myview'),
]
```
- 重新启动Apache
使用以下命令重新启动Apache:
sudo service apache2 restart
- 访问网站
在浏览器中输入你的服务器IP地址或域名,转到/myview/页面,你应该可以看到你的模型数据已经成功展示。
示例二:在Django项目中使用MySQL
- 安装MySQL
使用以下命令安装MySQL:
sudo apt-get install mysql-server
- 安装Python的mysql客户端库
使用以下命令安装Python的mysql客户端库:
pip install mysqlclient
- 修改数据库设置
在mysite/settings.py文件中,将数据库配置修改为以下内容:
python
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mydatabase',
'USER': 'mydatabaseuser',
'PASSWORD': 'mypassword',
'HOST': 'localhost',
'PORT': '',
}
}
其中,mydatabase, mydatabaseuser和mypassword分别为你自己MySQL的数据库名称、用户名和密码。
- 创建MySQL数据库
使用以下命令创建MySQL数据库:
mysql -uroot -p
CREATE DATABASE mydatabase;
GRANT ALL PRIVILEGES ON mydatabase.* TO 'mydatabaseuser'@'localhost' IDENTIFIED BY 'mypassword';
FLUSH PRIVILEGES;
EXIT;
- 创建Django模型
在MyApp/models.py文件中,编写一个简单的Django模型:
```python
from django.db import models
class MyModel(models.Model):
name = models.CharField(max_length=100)
age = models.IntegerField()
def __str__(self):
return self.name
```
- 创建数据库表
使用以下命令创建数据库表:
python manage.py makemigrations
python manage.py migrate
此时,MySQL数据库表已经被创建。
- 在视图中展示数据
在MyApp/views.py文件中,编写一个简单的Django视图:
```python
from django.shortcuts import render
from .models import MyModel
def myview(request):
mydata = MyModel.objects.all()
return render(request, 'mytemplate.html', {'mydata': mydata})
```
在MyApp/templates/目录下创建一个名为mytemplate.html的模板文件:
```html
-
{% for item in mydata %}
- {{ item }}
{% endfor %}
```
- 将视图添加到URL映射中
在mysite/urls.py文件中,将视图添加到URL映射中:
```python
from django.urls import path
from MyApp.views import myview
urlpatterns = [
path('myview/', myview, name='myview'),
]
```
- 重新启动Apache
使用以下命令重新启动Apache:
sudo service apache2 restart
-
访问网站
在浏览器中输入你的服务器IP地址或域名,转到/myview/页面,你应该可以看到你的模型数据已经成功展示。
希望以上攻略可以帮到你。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python3+django2.0+apache2+ubuntu14部署网站上线的方法 - Python技术站