django+nginx+gunicorn+pipenv微信小程序实践笔记

一、我采用pipenv来管理虚拟环境,在本地新建虚拟环境:

mkdir wxProject

#进入环境目录,创建虚拟环境

pipenv install

#激活虚拟环境

pipenv shell

#然后可以安装必须的工具

pipenv install django,django-simple-serializer(一个Model的序列化工具),requests,gunicorn  (WSGI服务器)

#创建django项目

django-admin startproject wxMINI

#进入项目根目录并使用管理工具manage.py创建django应用

python manage.py startapp wxAPP

#然后就可以用IDE工具开发项目

遇到的问题:

1、BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

BASE_DIR是项目的根目录,在其它地方使用是os.path.join(BASE_DIR,‘media/photo/‘)这样的路径拼接中,后面的‘media/photo/‘前面不应该做“/”,

#这种写法会路径错误

os.path.join(BASE_DIR,‘/media/photo/‘)

2、STATIC_ROOT是必须的,在部署时收集静态文件python manage.py collectstatic会根据该设置项进行自动处理(比如ADMIN用到的CSS,JS文件)

STATIC_URL是网络访问引用名,因为在实际的接口或程序中生成静态文件的相对路径,然后根据该引用名进行访问。

3、gunicorn启动服务:gunicorn -w 2 -b 127.0.0.1:8080 wxMINI:wsgi:application

-w:启动进程数

-b:绑定本地端口

wxMINI:项目目录下同名文件夹(项目配置文件目录)

wsgi:固定的文件名,django创建项目时自动创建的

application:固定名称,django自动创建的wsgi中的服务应用入口

4、nginx

server {
charset utf-8;
listen 80;
server_name elle.meme-info.com;
access_log /www/wwwroot/wxMini/MiniX/logs/nginx.access.log;
error_log /www/wwwroot/wxMini/MiniX/logs/nginx.error.log;

location /static {
alias /www/wwwroot/wxMini/MiniX/static;
}

location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

5、微信小程序接口统一使用https,阿里云可开通免费SSL认证证书,同时开通CDN,解析域名设置回源路径等。

 

django+nginx+gunicorn+pipenv微信小程序实践笔记

上一篇:小程序文本溢出显示省略号(单行/多行)


下一篇:微信小程序开发---自定义组件