django uwsgi启动

Django uwsgi启动

conda env list 查看conda的虚拟环境
conda create -n 虚拟环境名称 python==3.6 创建虚拟环境指定版本号
conda activate 虚拟环境名称 进入/激活虚拟环境
conda deactivate 退出虚拟环境
pip freeze > requirement.txt 打包当前环境用到的第三方包到文件
pip install -r pip freeze > requirement.txt 到新环境中安装开发虚拟环境用到的包
django-admin 查看admin所有命令
django-admin startproject [项目名] 创建项目和项目文件夹
进入虚拟环境并项目文件夹 python manage.py runserver 启动django服务(仅限开发测试启动,默认端口号8000,启动时更换端口号 python3 manage.py runserver 5000)
ctrl + c 退出当前运行的django 服务
sudo lsof -i:8000 查询django的进程id
sudo kill -9 ’pid‘结束django的进程id
python manage.py 查看所有django子命令
python manage.py startapp 创建应用
python manage.py migrate 数据库迁移

django配置mysql数据库需要安装mysqlclient包(先安装mysql环境)
安装mysqlclient需要确认先安装python3-dev和default-libmysqlclient-dev;检查是否已安装用:sudo apt list --installed|grep -E ‘libmysqlclient-dev|python3-dev’ ;若2命令无输出则需安装:sudo apt get install python3-dev (或者default-libmysqlclient-dev);

django数据库迁移
生成迁移文件:python manage.py makemigrations
执行迁移脚本:python manage.py migrate

Django 的交互环境 Shell
python manage.py shell 测试使用

uWSGI安装
Ubuntu 执行 sudo pip install uwsgi ==2.0.18 -i https://pypi.tuna.tsinghua,edu.cn/simple/
检查是否安装成功:sudo pip freeze|grep -i ‘uwsgi’
如果安装成功则会输出 uwsgi ==2.0.18
添加配置文件:项目同名文件夹/uwsgi.ini (与setting文件同级目录);如mylczg/mylczg/uwsgi.ini ;
文件需以 [uwsgi] 开头,常用配置项:
套接字方式的ip地址:端口(此模式需要有nginx,使用uwsgi协议),例如:
socket = xxx.xxx.xxx.xxx:8000
http通讯方式ip地址:端口号,例如:
http=xxx.xxx.xxx.xxx:8000
项目当前工作目录:
chdir = /home/tarena/…/my_project
项目中wsgi.py文件的目录(这里是相对目录,相对与上面工作目录的):
wsgi-file = my_project/wsgi.py
进程个数: process=4;
每个进程的线程个数: threads = 2;
服务的pid记录文件当前启动uwsgi主进程的id记录),
pidfile = uwsgi.pid
服务的日志文件位置,正式上线后后台启动日志配置
daemonize = uwsgi.log
开启主进程管理模式
master = true
启动uwsgi:
cd到uwsgi配置文件所在目录,执行命令:uwsgi --ini uwsgi.ini
检查uwsgi是否正常启动:ps aux|grep ’uwsgi‘ 后,屏幕显示内容多行,其中用 --ini代表启动成功
停止uwsgi:
cd到uwsgi配置文件所在目录,执行命令:uwsgi --stop uwsgi.pid
如果停止失败,可能是重复执行了启动导致了pid文件的进程编号修改导致的,此时只能使用ps aux|grep ’uwsgi‘ 查询uwsgi的进程pip在进行sudo kill -9 ’pid‘,杀掉进程

注意!注意!注意!Django中代码有任何修改,必须重启uwsgi

nginx配置中重要的两项:
location / {
# try_files $uri $uri/ =404; # 此项需要注释掉,对转发无用且会阻止下面的配置进行
uwsgi_pass 127.0.0.1:8000;
include /etc/nginx/uwsgi_params;
}
sudo nginx -t 检查nginx语法
nginx操作:nginx配置只要修改就要重启
sudo /etc/init.d/nginx start 启动
sudo /etc/init.d/nginx stop 停止
sudo /etc/init.d/nginx restart 重启

nginx 日志 访问日志和错误日志,日志路径可在配置文件中查看,例如:
访问日志: /var/log/nginx/access.log
错误日志:/var/log/nginxrerror.log

uwsgi日志,在项目同名文件夹下的,uwsgi.log

常见错误:
502错误码:代表nginx反向代理成功,但是uwsgi未启动;
404错误码:1、黄色报错页是django路由中不存在的路由;2、白色报错页是nginx配置错误,未注释掉try_files

如果需要nginx加载静态文件,则django配置文件setting需修改配置,:
STATIC_ROOT = ‘/home/tarena/项目名_static/static’
其中:项目名_static是指项目文件夹下的static文件夹(拼接),最后的static是二级文件夹static
进入项目目录,执行 python manage.py collectstatic 命令,django自动将项目所有静态文件复制到STATIC_ROOT中,包括django内建的静态文件。
同时需要在ngnix中添加配置:
location /static {
root /home/tarena/项目名_static;
}

你可能感兴趣的:(python,django,django,python,学习)