Nginx+uWSGI+Django部署web服务器

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_39581226/article/details/84190661

一.搭建项目

    1.建立一个虚拟环境
        建议个人学习和测试的话,直接建在 /home/ubuntu/用户/ 目录下,

virtualenv -p python3 py3env

  2.启动虚拟环境

source py3env/bin/activate

  3.安装django,之所以装这个版本是学习所需要,后面自己的项目最好与时俱进。

pip install django

4 .新建项目和app

django-admin startproject weixin #安装项目
 
cd weixin

python3 manage.py startapp newapp#安装app

python3 manage.py migrate #依赖

5.项目目录结构


(py3env) ubuntu@VM-0-7-ubuntu:~/ybb/weixin$  tree -L 2
.
├── manage.py
├── newapp
│   ├── admin.py
│   ├── apps.py
│   ├── __init__.py
│   ├── migrations
│   ├── models.py
│   ├── tests.py
│   └── views.py
└── weixin
    ├── __init__.py
    ├── __pycache__
    ├── settings.py
    ├── urls.py
    └── wsgi.py

二.Django部署

1.修改weixin/weixin/settings.py

ALLOWED_HOSTS = ['*', ]

 在ALLOWED_HOSTS 默认的空列表中填入你自己打算使用的域名,我这里测试的时候填的是*,真正上线部署的时候不建议填成通配符的*,而是要填允许访问的主机域名

INSTALLED_APPS = [
  ......,
 'newapp', ]

INSTALLED_APPS 列表下增加newapp,表示将newapp应用给安装注册上。

2.修改weixin/newapp/views.py

from django.shortcuts import render,HttpResponse

# Create your views here.

def index(request):
    return HttpResponse('Hello ybb')

3.编辑weixin/weixin/urls.py

from django.conf.urls import url
from django.contrib import admin
from newapp import views

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^index/', views.index),
]

4.测试项目,运行结果(注意服务器端口开放有哪些)

python manage.py runserver 0.0.0.0:3389

三.uWSGI部署

1.同样的虚拟环境下安装:

pip3 install uwsgi

2.在项目目录下,编写一个用于简单测试uwsgi的python脚本,

vim test.py

3.test.py 代码

def application(env,start_response):
    start_response('200 OK',[('Content-Type','text/html')])
    return [b"Hello World"]

4.测试运行uWSGI

以下命令表示运行uwsgi服务,同样是在3389口上开放web访问。
* 注意--http 后是一个空格再接:端口号。

uwsgi --http :3389 --wsgi-file test.py

ctrl+c中止程序,再来进行以下的测试。

5.使用uWSGI运行django项目

在虚拟环境下,进入到项目目录下后敲以下命令:

 uwsgi --http :3389 --module weixin.wsgi

效果和之前的

python manage.py runserver 0.0.0.0:3389

一样

6.uWSGi热加载Djangoa项目

在启动命令后面加上参数:

uwsgi --http :3389 --module weixin.wsgi --py-autoreload=1
  • 同样,这个时候访问服务器3389端口,也就是访问了django项目(weixin)。

猜你喜欢

转载自blog.csdn.net/weixin_39581226/article/details/84190661