Django+Nginx+Uwsgi 上线部署

Posted Luke

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django+Nginx+Uwsgi 上线部署相关的知识,希望对你有一定的参考价值。

使用环境

Python 3.6

CentOS 7.4

安装Python3.6

tar命令解压安装Python

去官网下载对应的python.tgz压缩包。

tar -zxvf Python-3.6.6.tgz  
mkdir /usr/local/python3
cd Python-3.6.6
./configure --prefix=/usr/local/python3
make && make install

ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
安装步骤

yum安装Python

sudo yum -y update   # 更新下yum源
sudo yum -y install yum-utils  # 安装扩展程序和插件
sudo yum -y groupinstall development  # 安装CentOS开发工具 (用于允许您从源代码构建和编译软件)
sudo yum -y install epel-release #安装EPEL
sudo yum -y install https://centos7.iuscommunity.org/ius-release.rpm  # 安装IUS软件源
yum源准备
sudo yum -y install python36u  # 安装python3.6*
sudo yum -y install python36u-pip # 安装pip

# 查看是否安装成功
python3.6 -V
pip3.6 -V

# 添加软连接
ln -s /usr/bin/python3.6 /usr/bin/python3
ln -s /usr/bin/pip3.6 /usr/bin/pip3

python3 -m pip install --upgrade pip  # 更新pip
安装Python

Django安装

1. 使用pip安装django

#pip3 install django    # 注意我使用的是python3所以用pip3安装,如需安装指定版本 django == *.*.*

2. 检测是否安装成功,不报错,则安装成功

# python3 
# import django  

创建一个Django项目

1. 新建一个django项目,并cd到当前项目文件下

[root@VM_0_3_centos /]# django-admin.py startproject project_name
[root@VM_0_3_centos /]# cd ./project_name
[root@VM_0_3_centos project_name]# ls    
manage.py  project_name   #  

project_name/project_name目录下的文件

  _init_.py是python包的目录必须的

  settings.py是项目的设置

  urls.py是项目的url配置文件

  wsgi.py是部署服务器时用到的文件

2. 新建一个应用到 project_name  目录下(是第一层的project_name ,不是project_name里的project_name 。)

[root@VM_0_3_centos project_name]# python3  manage.py startapp apptest  
[root@VM_0_3_centos project_name]# ls
apptest  manage.py  project_name

3. cd到新建的应用apptest目录下,修改views.py,添加一个index函数

[root@VM_0_3_centos apptest]# vim views.py
[root@VM_0_3_centos apptest]# ls 
admin.py  apps.py  __init__.py  migrations  models.py  tests.py  views.py
#coding:utf-8  
from django.http import HttpResponse  
   
def index(request):  
    return HttpResponse(u"欢迎!") 

4. 在settings.py中,在INSTALLED_APPS中添加刚刚创建的应用apptest,并将ALLOWED_HOSTS=[],修改为ALLOWED_HOSTS=[‘*‘] 

[root@VM_0_3_centos project_name]# cd ./project_name/
[root@VM_0_3_centos project_name]# ls
__init__.py  __pycache__  settings.py  urls.py  wsgi.py
[root@VM_0_3_centos project_name]# vim urls.py

5. 接着在urls.py中,添加新路由

[root@VM_0_3_centos project_name]# vim settings.py

 

6. 接下来就可以启动Django项目了,cd到项目目录下

[root@VM_0_3_centos project_name]# cd -
/project_name
[root@VM_0_3_centos project_name]# ls
apptest  manage.py  project_name
[root@VM_0_3_centos project_name]# python3  manage.py runserver 118.25.60.11:8000

 

上面这种启动方式,是前台启动,要想在断开连接后继续使用就要用到后台启动了。

nohup python manage.py runserver 0:8000 &  # 0代表所有

 

以上是关于Django+Nginx+Uwsgi 上线部署的主要内容,如果未能解决你的问题,请参考以下文章

django项目部署上线

django2+uwsgi+nginx上线部署到服务器Ubuntu16.04(最新最详细版)

项目上线基础配置(Django+uWSGI+Nginx)

Python3+django+nginx+uwsgi使用场景部署

Python3+django+nginx+uwsgi使用场景部署

宝塔面板如何用uwsgi与nginx快速部署Django项目