Django部署手册

本文最后更新于:2022年8月1日 凌晨

一、 安装python环境

详情参考我的这一篇博文:

Python虚拟环境配置

二、Django的配置

1
2
3
pip install Django
django-admin.py startproject mysite
cd mysite

我将在mysite目录下完成后续相关操作

二、uWSGI的安装

1
pip install uwsgi

1. 基础测试:

  1. 创建一个在mysite下创建一个test.py的测试文档
1
2
3
4
5
6
7
8
9
(dj11.7) [root@localhost ~]# mkdir myporject
(dj11.7) [root@localhost ~]# cd myporject/
(dj11.7) [root@localhost myporject]# django-admin startproject mysite
(dj11.7) [root@localhost myporject]# cd mysite
(dj11.7) [root@localhost mysite]# ls
manage.py mysite
(dj11.7) [root@localhost mysite]# touch test.py
(dj11.7) [root@localhost mysite]# ls
manage.py mysite test.py

​ 以上就完成了测试脚本文件的构建

  1. test.py中写入以下测试内容:
1
2
3
4
5
# test.py
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return [b"Hello World"] # python3
#return ["Hello World"] # python2
  1. uWSGI运行:
1
uwsgi --http :8000 --wsgi-file test.py

​ 选项的意思是:

  • http :8000 :使用协议http端口8000
  • wsgi-file test.py :test.py加载指定的文件
  1. 浏览器访问你的IP加端口8000。
1
http://yourIP:8000

​ 返回结果:

1
hello world

如果是这样,这意味着以下工作原理:

1
the web client <-> uWSGI <-> Python

2. 测试Django项目

现在我们希望uWSGI做同样的事情,但运行Django网站而不是 test.py 模块。

如果您还没有这样做,确保你的 mysite 项目实际工作原理:

1
python manage.py runserver 0.0.0.0:8000

如果这工作,运行它使用uWSGI:

1
uwsgi --http :8000 --module mysite.wsgi
  • 模块 mysite.wsgi :加载指定wsgi模块

您的浏览器指向服务器; 如果网站出现,这意味着uWSGI能够,大概的页面如下

Fk8F61.png

这个栈操作 正确:

1
the web client <-> uWSGI <-> Django

现在我们通常不会有浏览器直接向uWSGI说话。 这是一份工作 的网络服务器,它将充当中间人。

nginx。。。待续


Django部署手册
https://yance.wiki/Django部署手册/
作者
Yance Huang
发布于
2018年11月25日
许可协议