日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

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

發(fā)布時間:2025/3/11 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何让nginx执行python代码_生产环境部署Python语言代码(django+uwsgi+nginx) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文主要向大家介紹了生產環(huán)境部署Python語言代碼(django+uwsgi+nginx),通過具體的內容向大家展示,希望對大家學習Python語言有所幫助。

基礎環(huán)境不做介紹,在django開發(fā)web項目完成后,一直使用django自帶的服務器進行調試:

python manage.py runserver 0.0.0.0:8080

這個服務器在開發(fā)時使用,實際生產則不能滿足,要使用uwsgi把動態(tài)請求轉給python執(zhí)行,使用nginx處理靜態(tài)請求,部署如下:

在開發(fā)環(huán)境中,收集python所需的安裝包及其具體版本號:

pip freeze > programlist.txt

然后,把programlist.txt文件傳遞服務器上;

前提:線上服務器已經安裝好python環(huán)境、django環(huán)境、nginx等;

在服務器上安裝python項目所需要的程序包:

pip install -r programlist.txt

創(chuàng)建django項目:

django-admin startprojcet ?test

會在本地創(chuàng)建一個test項目同名的目錄,并進入:

cd test

再創(chuàng)建項目下的一個應用:

python manage.py starapp apptest

此時,當前目錄會出現apptest目錄、manage.py文件和test目錄(與項目目錄下同名的又一個目錄);

還要創(chuàng)建相應的目錄:

在項目目錄test下創(chuàng)建目錄:

test/templates/apptest

test/static/apptest

test/static/media

注意:兩級目錄均需要創(chuàng)建

修改settings.py文件:

DEBUG=False

#允許指定主機訪問服務器

ALLOWED_HOSTS=['*']

#添加應用

INSTALLED_APPS = [

...

'test',

]

#修改模板路徑

TEMPLATES = [

{

...

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

...

},

]

#添加靜態(tài)文件路徑

STATIC_URL = '/static/'

STATICFILES_DIRS=[

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

]

#nginx配置中的靜態(tài)文件路徑

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')),

]

在應用目錄下創(chuàng)建一個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/創(chuàng)建各html模板文件;

如index.html:

Title

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

此時,先測試一下,把settings中的DEBUG改為=False,如果不改,則會顯示不出圖片;再啟動django開發(fā)時的服務器,訪問瀏覽器能看見圖片且符合js里面設定的圖片大小既可進行下一步配置;

下面配置wsgi:

安裝uWSGI:

pip install uwsgi

在項目test目錄下創(chuàng)建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/;????}

在靜態(tài)文件存放目錄:

/var/www/test/static/

修改靜態(tài)文件所在目錄static的目錄權限:

chmod ?777 static

再把靜態(tài)文件,放到/var/www/test/static/目錄下既可,django提供方便的命令,來采集靜態(tài)文件:

python manage.py collectstaic

輸入yes;

執(zhí)行該命令后,會自動把靜態(tài)文件都復制到/var/www/test/static/目錄下;

最后,直接訪問服務器的域名或ip,完成訪問頁面;

本文由職坐標整理并發(fā)布,希望對同學們學習Python有所幫助,更多內容請關注職坐標編程語言Python頻道!

總結

以上是生活随笔為你收集整理的如何让nginx执行python代码_生产环境部署Python语言代码(django+uwsgi+nginx)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。