Django 部署

1. 阅读基础

2. 配置虚拟环境

表中命令从上往下执行即可,部分需要先切换目录,下同。本文为学习笔记,仅供参照,详细流程请阅读参考文章和官方文档。

操作 命令
- 创建虚拟环境 python3 -m venv /www/venv
- 激活虚拟环境 source /www/venv/bin/activate
- Windows下激活 .\venv\Scripts\activate
- 使用 uwsgi 部署 pip install uwsgi
- 使用 Gunicorn 部署 pip install gunicorn
- 安装环境包 pip install -r requirements
- 生成环境包 pip freeze > requirements.txt
- 退出环境 deactivate

3. Django 项目开发

操作 命令 备注
- 创建 django 项目 web django-admin startproject web 生成项目目录
- 创建应用 count python manage.py startapp count 开发使用
- 创建超级账户 python manage.py createsuperuser 开发、部署使用
- 生成迁移文件 python manage.py makemigrations 在 migrations 生成文件
- 执行迁移 python manage.py migrate
- 同步静态文件 python manage.py collectstatic 部署使用
- 启动开发服务器 python manage.py runserver 开发、测试使用

4. 配置 setting.py

- LANGUAGE_CODE = 'zh-Hans'
- TIME_ZONE = 'Asia/Shanghai'(视情况配置)
- ALLOWED_HOSTS = ['公网ip',域名'](部署前配置)
- DEBUG = False(NGINX 后配置)

5. 部署准备

- 删除 migrations 下数字开头的所有 python 文件
- uwsgi.ini
1
2
3
4
5
6
7
8
9
[uwsgi]
chdir = /www/web
module = web.wsgi:applocation
home = /www/venv
socket = 172.18.173.33:8099
stats = 172.18.173.33:9191
master = true
processes = 5
vacuum = true

6. 部署测试

- 开发服务器测试 `python36 manage.py runserver 172.18.173.33:80`
- uwsgi 部署测试 `uwsgi uwsgi.ini`
- Gunicorn 部署测试 `gunicorn -b 172.18.173.33:80 web.wsgi`

7. 配置 nginx

1
2
3
4
# 安装 uwsgi
pip3 install uwsgi
# 安装 nginx
yum install nginx

测试

nginx -t

8. 参考文章