Django是Python Web框架之一,在我们的web应用中还是有常用的。如果手工部署还是比较麻烦,这里如果我们有在用宝塔面板部署还是简单一些的。这里,老左简单的将Django部署流程记录。
1、安装宝塔环境
这里我们需要提前部署宝塔WEB环境,这里常用的是LNMP引擎。这里我就不重复,大家都会安装。
2、安装Python项目管理器
这里我们搜索软件商店,找到【Python项目管理器 】
直接安装。安装成功后,点击Python项目管理器的设置链接,在版本管理里安装我们需要的Python版本。
3、添加项目站点。
添加站点和我们常规添加一样。
4、运行终端
python3 -m venv venv
然后在当前站点的文件管理器找到终端,运行。当然我们也可以直接用SSH远程在网站目录中运行。
source venv/bin/activate
激活虚拟环境。
5、在本地电脑用命令将Python需要的环境进行安装
Pip freeze > requirements.txt
在服务器终端虚拟环境下安装依赖。
pip3 install -r requirements.txt
如果pip3 install -r requirements.txt报错,就手动一个一个安装
pip3 install asgiref
pip3 install Django
安装uwsgi
pip3 install uwsgi
安装MySQL数据库接口。
pip3 install mysqlclient
在项目包下找到setting.py,配置数据库连接(注意数据库用户名及密码,以及HOST项)。然后用系统里面的数据库工具增加需要的数据库。
在终端虚拟环境下分别执行这两条命令:
python3 manage.py makemigrations
python3 manage.py migrate
数据库需要初始数据的,自行导入数据。
6、在项目目录创建一个deploy的文件夹,用来存放uwsgi的配置文件及日志文件!在该文件夹下分别创建一个params的文件与uwsgi.ini的文件。
params中的内容如下:
uwsgi_param QUERY_STRING $query_string;
uwsgi_param REQUEST_METHOD $request_method;
uwsgi_param CONTENT_TYPE $content_type;
uwsgi_param CONTENT_LENGTH $content_length;
uwsgi_param REQUEST_URI $request_uri;
uwsgi_param PATH_INFO $document_uri;
uwsgi_param DOCUMENT_ROOT $document_root;
uwsgi_param SERVER_PROTOCOL $server_protocol;
uwsgi_param REQUEST_SCHEME $scheme;
uwsgi_param HTTPS $https if_not_empty;
uwsgi_param REMOTE_ADDR $remote_addr;
uwsgi_param REMOTE_PORT $remote_port;
uwsgi_param SERVER_PORT $server_port;
uwsgi_param SERVER_NAME $server_name;
该文件主要目的就是转发非静态文件请求到uwsgi服务
uwsgi.ini文件中的内容如下:
[uwsgi]
socket = 127.0.0.1:8000
chdir = /www/wwwroot/idcspy.com
module = myobject.wsgi
home = /www/wwwroot/idcspy.com/venv
master = true
processes = 10
threads = 2
chmod-socket = 666
vacuum = true
daemonize = /www/wwwroot/laozuo.org/deploy/uwsgi.log
pidfile = /www/wwwroot/laozuo.org/deploy/uwsgi.pid
具体配置根据站点的实际情况进行修改即可。
7、uwsgi配置完成之后,还需修改网站Nginx的配置文件。其中8000端口和uwsgi.ini配置对应,params和deploy文件夹内的对应。
8、基本配置完成后,便可启动服务。
启动uwsgi(虚拟环境下)
uwsgi –ini deploy/uwsgi.ini
重启uwsgi
uwsgi –reload deploy/uwsgi.pid
停止uwgi
uwsgi –stop deploy/uwsgi.pid