本文主要向大家介绍了生产环境部署Python语言代码(django+uwsgi+nginx),通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。

基础环境不做介绍,在django开发web项目完成后,一直使用django自带的服务器进行调试:

python manage.py runserver 0.0.0.0:8080

这个服务器在开发时使用,实际生产则不能满足,要使用uwsgi把动态请求转给python执行,使用nginx处理静态请求,部署如下:

在开发环境中,收集python所需的安装包及其具体版本号:

pip freeze > programlist.txt

然后,把programlist.txt文件传递服务器上;

前提:线上服务器已经安装好python环境、django环境、nginx等;

在服务器上安装python项目所需要的程序包:

pip install -r programlist.txt

创建django项目:

django-admin startprojcet  test

会在本地创建一个test项目同名的目录,并进入:

cd test

再创建项目下的一个应用:

python manage.py starapp apptest

此时,当前目录会出现apptest目录、manage.py文件和test目录(与项目目录下同名的又一个目录);

还要创建相应的目录:

在项目目录test下创建目录:

test/templates/apptest

test/static/apptest

test/static/media

注意:两级目录均需要创建

修改settings.py文件:

DEBUG=False

#允许指定主机访问服务器

ALLOWED_HOSTS=['*']

#添加应用

INSTALLED_APPS = [

...

'test',

]

#修改模板路径

TEMPLATES = [

{

...

'DIRS': [os.path.join(BASE_DIR,'templates')],

...

},

]

#添加静态文件路径

STATIC_URL = '/static/'

STATICFILES_DIRS=[

os.path.join(BASE_DIR,'static')

]

#nginx配置中的静态文件路径

STATIC_ROOT='/var/www/test/static/'

#配置数据库

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.mysql',

'NAME': 'test3',

'USER': 'root',

'PASSWORD': 'root',

'HOST': 'localhost',

'PORT': '3306',

}

}

修改主urls.py文件:

#配置url路径

from django.conf.urls import url,include

from django.contrib import admin

urlpatterns = [

url(r'^admin/', admin.site.urls),

url('^',include('booktest.urls')),

]

在应用目录下创建一个urls.py文件:

test/urls.py

如:

from django.conf.urls import url

import views

urlpatterns=[

url(r'^$',views.index),

]

在views.py文件里定义各种视图函数;

如:

from django.shortcuts import render

def index(request):

return render(request,'booktest/index.html')

在templates/apptest/创建各html模板文件;

如index.html:

Title

注意:先把a1.jpg和js文件放到test/static/apptest目录下;

此时,先测试一下,把settings中的DEBUG改为=False,如果不改,则会显示不出图片;再启动django开发时的服务器,访问浏览器能看见图片且符合js里面设定的图片大小既可进行下一步配置;

下面配置wsgi:

安装uWSGI:

pip install uwsgi

在项目test目录下创建uwsgi.ini文件,内容如下:

[uwsgi]

#使用nginx连接,使用socket

socket=192.168.1.250:8080

#直接做web服务器,使用http

#http=192.168.1.250:8080

#项目的绝对路径

chdir=/root/projects/test

#相对项目绝对路径的一个路径

wsgi-file=test/wsgi.py

processes=4

therads=2

master=True

pidfile=uwsgi.pid

daemonize=uswgi.log

运行uwsgi:

uwsgi --ini uwsgi.ini

如果uwsgi.ini文件使用的是http,则直接访问服务器的ip地址和端口既可显示页面;

停止uwsgi:

uwsgi --stop uwsgi.pid

如果uwsgi.ini文件使用的是socket,则需要nginx服务的配合使用:

配置nginx.conf:

server {

listen       80 default_server;

listen       [::]:80 default_server;

servername  ;

root         /usr/share/nginx/html;

include /etc/nginx/default.d/*.conf;

location / {            include uwsgi_params;            uwsgi_pass 192.168.1.250:8080;    }            location /static {            alias /var/www/test/static/;    }

在静态文件存放目录:

/var/www/test/static/

修改静态文件所在目录static的目录权限:

chmod  777 static

再把静态文件,放到/var/www/test/static/目录下既可,django提供方便的命令,来采集静态文件:

python manage.py collectstaic

输入yes;

执行该命令后,会自动把静态文件都复制到/var/www/test/static/目录下;

最后,直接访问服务器的域名或ip,完成访问页面;

本文由职坐标整理并发布,希望对同学们学习Python有所帮助,更多内容请关注职坐标编程语言Python频道!

如何让nginx执行python代码_生产环境部署Python语言代码(django+uwsgi+nginx)相关推荐

  1. python代码修改nginx配置_生产环境部署python代码(django+uwsgi+nginx)

    基础环境不做介绍,在django开发web项目完成后,一直使用django自带的服务器进行调试: python manage.py runserver 0.0.0.0:8080 这个服务器在开发时使用 ...

  2. 生产环境部署python代码(django+uwsgi+nginx)

    基础环境不做介绍,在django开发web项目完成后,一直使用django自带的服务器进行调试: python manage.py runserver 0.0.0.0:8080 这个服务器在开发时使用 ...

  3. 云服务器运行python程序_云服务器部署python项目

    发现python的一个识别验证码识别模块 muggle-ocr(https://pypi.org/project/muggle-ocr/) 成功率还是可以的,打算把把部署到云服务器上 这里记录一下部署 ...

  4. python生产脚本_生产级部署 Python 脚本,日志收集、崩溃自启,一键搞定

    点击上方" 承香墨影 ",选择"置顶或星标" 第一时间接收最新消息 今天介绍一个生产级的流程管理工具 PM2,通常我们说到 PM2 的时候,都是在说如何部署 N ...

  5. mcem r语言代码_生态学数据处理常用R语言代码

    使用R来处理生态学数据越来越受到科研工作者的青睐,语义编程风格.漂亮的出图效果,能直接俘获众多用户.本文将生态学数据处理中经常会使用到的功能做个搜集整理. 本文假设读者有一些R的基础知识,对于R的编程 ...

  6. c语言生日创意代码_生日日数 (C语言代码)

    #include int main() { int yy, mm, dd; int year[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ...

  7. 【django云服务器部署】django+uwsgi+nginx 部署的完整流程

    本篇博客完整地记录了我从购买服务器到完成部署的全过程,需要的朋友可以参考一下我的流程,看这一篇文章就能成功部署项目啦. 写这个的本意是为备忘( 保姆级步骤),同时由于我在最开始部署项目时,没有找到一个 ...

  8. java寻优算法_模拟退火算法SA原理及python、java、php、c++语言代码实现TSP旅行商问题,智能优化算法,随机寻优算法,全局最短路径...

    模拟退火算法SA原理及python.java.php.c++语言代码实现TSP旅行商问题,智能优化算法,随机寻优算法,全局最短路径 模拟退火算法(Simulated Annealing,SA)最早的思 ...

  9. Django + Uwsgi + Nginx 实现生产环境部署1

    项目开发完毕后,需要将代码放到服务器上,这样用户才能访问.接下来我们一步一步来进行一波部署操作. 1. 简单粗暴 项目开发完毕,在部署之前需要再配置文件中将 ALLOWED_HOSTS配置设置为:当前 ...

最新文章

  1. java模拟验证码生成
  2. centos6.5 安装mysql8,centos6上安装mysql8.0版本
  3. 【Android FFMPEG 开发】Android Studio 中配置 FFMPEG 库注意事项 ( 静态库 链接 libz.so 库 | 导入 FFMPEG 函数库顺序 )
  4. 攻防世界第四题Reverse re1
  5. 蜡笔小新里的钢达姆机器人怎么画_写字机器人好用吗? 组装就花了5个小时 还要学习软件、录入字体...
  6. ug编程内公差和外公差是什么_工厂老师傅自学数控编程多年心得,希望你们少走弯路...
  7. 阿里云启动API创新大赛 设视频技术为场景赛题
  8. Java 获取链表的元素
  9. 聊聊时间管理,不是多人运动那种
  10. ethtool -g rx_魔兽怀旧服:黑G团避坑指南
  11. 记录如何深度拷贝一个属性存在循环引用的对象
  12. LeetCode 71. Simplify Path
  13. 【Android布局】在程序中设置android:gravity 和 android:layout_Gravity属性——位置设置偏向...
  14. 编译原理学习笔记之上下文无关文法
  15. 电脑屏幕总是晚上定时开启护眼模式,变成黄色?教你这招解决它
  16. Arduino笔记四电子指南针罗盘HMC5883L
  17. flutter ListView.separated使用
  18. python为什么会出现无响应怎么办,Python多处理中无响应进程的终止
  19. assert.equal()
  20. BERT知识点汇总(en cour...)

热门文章

  1. 分析容灾备份建设需求
  2. 3招seo技巧让你把关键词做进百度前三
  3. 又一个很全的R资讯网站
  4. Qt 4.7.1 和 Mobility 1.1.0 已发布
  5. c#字符型转化为asc_C#字符串和ASCII码的转换
  6. npm ERR! Please try running this command again as root/Administrator.
  7. 茱莉亚分形_茱莉亚的NaN Constant
  8. python学习中文第五版_前5个学习Python的网站
  9. 职称计算机提前考试试卷,职称计算机考试多项选择考试卷模拟考^试题
  10. python arima模型_Python时间序列处理之ARIMA模型的使用讲解