django-extensions的使用
参考链接:
https://zhuanlan.zhihu.com/p/342412619
drf_spectacular 的用法(swagger文档生成)
参考链接:
https://page.om.qq.com/page/OPSsHAtJQptUc_bvWV1M6bPA0?source=cp_1009
django-debug-tools的用法
参考链接:
https://www.cnblogs.com/guojie-guojie/p/16330213.html
uwsgi+nginx 启动django项目
先启动uwsgi项目:
uwsgi --ini (项目ini文件路径/uwsgi.ini) # 启动
ps -ef |grep -i uwsgi # 查看启动端口
uwsgi --stop (项目pid文件路径/uwsgi.pid) # 停止uwsgi
# ini文件配置
[uwsgi]
#项目目录
chdir=/home/project111/nginx_project/teacher
#启动uwsgi的用户名和用户组
uid=root
gid=root
#指定项目的application
module=teacher.wsgi:application
#指定sock的文件路径
socket=/home/project111/nginx_project/teacher/script/uwsgi.sock
#启动进程
master=true
# 进程个数
workers=5
pidfile=/home/project111/nginx_project/teacher/script/uwsgi.pid
# 自动移除unix socket和pid文件,当服务停止的时候
vacuum=true
# 序列化接受的内容,如果可能的话
thunder-lock=true
#启动线程
enable-threads=true
#设置中断时间
harakiri=30
# 设置缓冲
post-buffering=1024
#设置日志目录
daemonize=/home/project111/nginx_project/teacher/script/uwsgi.log
# nginx相关(后启动nginx)
# 编写配置nginx配置文件,所在路径为/etc/nginx/conf.d/xxx.conf
systemctl start nginx # 启动nginx
# 指定配置文件启动nginx,启动前可以使用-t参数是启动前先检查nginx格式是否正确
usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
systemctl stop nginx # 关闭nginx 或者 killall nginx
netstat -tunlp |grep nginx # 查看进程端口
# nginx基础配置
server {
listen 8888;
server_name 0.0.0.0;
access_log /var/log/nginx/access.log;
charset utf-8;
gzip on;
gzip_types text/plain application/x-javascript text/css text/javascript application/x-httpd-php application/json image/jpeg image/gif image/png application/octet-stream;
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
#指定项目路径uwsgi
location / {
include uwsgi_params; # uwsgi和nginx的协议,固定格式
uwsgi_connect_timeout 30;
uwsgi_pass unix:/home/project111/nginx_project/teacher/script/uwsgi.sock; # unix不能省略
}
# 指定静态文件路径
location /static/ {
alias /home/project111/nginx_project/teacher/static/;
index index.html index.htm;
}
}
view参数request详解
def request_test(request):
print(request.method) #请求方式
print(request.GET) #获取请求url中的参数,是个字典
print(request.GET.get("XXX")) #获取请求url字典里的数据
print(request.GET.get('xxx',default=1)), # 若请求不到xxx的值,则设为默认值1
print(request.POST) # 获取请求body里传的参数
print(request.COOKIES.get("XXX")) #获取请求cookies里面的
print(request.META.get("HTTP_META")) #获取请求header里面传的meta。这里获取时前面必须有大写HTTP,且这里参数也要大写
# https://pythondjango.cn/blog/articles/?page=2
print(request.path) # 获取请求路径. `/blog/articles/`
print(request.path_info) # 【推荐使用】获取请求路径. `/blog/articles/`
print(request.get_full_path) # 获取请求路径 ‘blog/articles/?page=2’
print(request.FILES.get("file_name")) # 获取请求文件
print(request.body)#获取请求json
# json.loads(request.body)
return HttpResponse("ok")
https://blog.csdn.net/holly_08/article/details/117225210
配置pip国内源
# 创建文件夹/文件,名字路径固定
mkdir ~/.pip
vim ~/.pip/pip.conf
# vim编辑pip.conf后填入
[global]
timeout = 8
index-url = http://mirrors.aliyun.com/pypi/simple/
extra-index-url= http://pypi.douban.com/simple/
[install]
trusted-host=
mirrors.aliyun.com
pypi.douban.com
创建python虚拟环境
# 安装包
pip install virtualenv
pip install virtualenvwrapper
# 把python写入环境变量
echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python" >> ~/.bashrc
echo 'export PATH=/usr/local/bin/virtualenv:$PATH'>>/etc/profile
# 用find指令查找.sh文件
find / -name virtualenvwrapper.sh
#/usr/bin/virtualenvwrapper.sh
# 在~/.bashrc 文件新增配置
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/workspace
export VIRTUALENVWRAPPER_SCRIPT=/usr/bin/virtualenvwrapper.sh
source /usr/bin/virtualenvwrapper.sh
# 指定虚拟环境运行py文件,前面必须加 #!不能省略
#!/root/.virtualenvs/my_env01/bin/python
PS:最好找一个固定目录,把所有的虚拟环境都放在里面
# 常用指令
# 创建
$ mkvirtualenv my_env01
# 进入
$ workon my_env01
# 退出
$ deactivate
# 列出所有的虚拟环境,两种方法
$ workon
$ lsvirtualenv
# 在虚拟环境内直接切换到其他环境
$ workon my_env02
# 删除虚拟环境
$ rmvirtualenv my_env01
# 列出帮助文档
$ virtualenvwrapper
# 拷贝虚拟环境
$ cpvirtualenv ENVNAME [TARGETENVNAME]
# 在所有的虚拟环境上执行命令
$ allvirtualenv pip install -U pip
# 删除当前环境的所有第三方包
$ wipeenv
# 进入到当前虚拟环境的目录
$ cdsitepackages
# 进入到当前虚拟环境的site-packages目录
$ cdvirtualenv
# 显示 site-packages 目录中的内容
$ lssitepackages