Django部署到树莓派

/ 0评 / 0

部署使用gunicorn的wsgi服务器,django的app端,使用supervisor进行进程管理。暂时没部署nginx反向代理。

1.使用virtualenv创建虚拟环境,用于工程环境隔离

virtualenv djangoProject

2.创建django工程

进入虚拟环境
root@raspberrypi:/home/pi/study/python/djangoProject/bin# source activate
(djangoProject) root@raspberrypi:/home/pi/study/python/djangoProject/bin# 
创建myproject工程
django-admin startproject myproject

3.安装gunicorn

(djangoProject) root@raspberrypi:/home/pi/study/python/djangoProject/myproject# apt install gunicorn

4.配置gunicorn

在工程目录创建gunicorn_config.py,vi写入

pythonpath='/home/pi/study/python/djangoProject/lib/python2.7/site-packages/'
bind=':6001'

由于使用virtualenv创建的django运行环境,所以pythonpath需要填入当前虚拟环境的python路径,这样gunicorn在启动的时候自动查找virtualenv创建的环境,就在虚拟环境中运行django项目了,否则报错找不到django.cors.wsgi模块,此处配置也是bind为启动ip和端口号,0.0.0.0:6001

5.启动gunicorn

(djangoProject) root@raspberrypi:/home/pi/study/python/djangoProject/myproject# gunicorn -c gunicorn_config.py myproject.wsgi

myproject.wsgi其中,myproject是包名,wsgi是包下面的wsgi.py模块,默认由django-admin生成,此处用点,而不是用路径的"/"

6.安装supervisor

(djangoProject) root@raspberrypi:/home/pi/study/python/djangoProject/myproject# apt install supervisor

7.配置supervisor

创建配置文件,这里已经创建好了
(djangoProject) root@raspberrypi:/etc/supervisor/conf.d# ll
total 4
-rw-r--r-- 1 root root 176 Jan 11 11:30 djangoProject.conf
vi写入配置信息
[program:djangoProject]
directory=/home/pi/study/python/djangoProject/myproject
command=gunicorn -c gunicorn_config.py myproject.wsgi
user=root
autostart=true
autorestart=true

8.启动supervisor

加载更新的配置文件
supervisorctl update
启动项目
supervisor> start djangoProject 

9.创建admin超级用户

python manage.py createsuperuser

10.初始化数据库

创建数据库迁移
python manage.py makemigrations
应用数据库迁移
python manage.py migrate

11.VNC桌面使用chrome登录

总结:简单部署成功,后续需要对gunicorn和supervisor进行更详细的配置,例如log日志,进程数量,线程数量,超时设置等等。