生產(chǎn)環(huán)境部署python代碼(django+uwsgi+nginx)-創(chuàng)新互聯(lián)

基礎(chǔ)環(huán)境不做介紹,在django開發(fā)web項目完成后,一直使用django自帶的服務(wù)器進行調(diào)試:
python manage.py runserver 0.0.0.0:8080

10年積累的成都網(wǎng)站建設(shè)、做網(wǎng)站經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有涇川免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

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

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

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

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

在服務(wù)器上安裝python項目所需要的程序包:
pip install -r programlist.txt

創(chuàng)建django項目:
django-admin startprojcet test

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

再創(chuàng)建項目下的一個應(yīng)用:
python manage.py starapp apptest

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

還要創(chuàng)建相應(yīng)的目錄:
在項目目錄test下創(chuàng)建目錄:
test/templates/apptest
test/static/apptest
test/static/media
注意:兩級目錄均需要創(chuàng)建

修改settings.py文件:
DEBUG=False
#允許指定主機訪問服務(wù)器
ALLOWED_HOSTS=['*']
#添加應(yīng)用
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/'
#配置數(shù)據(jù)庫
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')),
]

在應(yīng)用目錄下創(chuàng)建一個urls.py文件:
test/urls.py
如:
from django.conf.urls import url
import views

urlpatterns=[
url(r'^$',views.index),
]

在views.py文件里定義各種視圖函數(shù);
如:
from django.shortcuts import render

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

在templates/apptest/創(chuàng)建各html模板文件;
如index.html:
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="/static/booktest/jquery-1.12.4.min.js"></script>

<script>
    $(function () {
        $('img').width(100).height(100);
    });
</script>

</head>
<body>
<img src="/static/booktest/a1.jpg" />
</body>

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

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

下面配置wsgi:

安裝uWSGI:
pip install uwsgi

在項目test目錄下創(chuàng)建uwsgi.ini文件,內(nèi)容如下:
[uwsgi]
#使用nginx連接,使用socket
socket=192.168.1.250:8080
#直接做web服務(wù)器,使用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,則直接訪問服務(wù)器的ip地址和端口既可顯示頁面;

停止uwsgi:
uwsgi --stop uwsgi.pid

如果uwsgi.ini文件使用的是socket,則需要nginx服務(wù)的配合使用:

配置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的目錄權(quán)限:
chmod 777 static

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

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

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

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務(wù)器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機房獨有T級流量清洗系統(tǒng)配攻擊溯源,準確進行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務(wù)器買多久送多久。

網(wǎng)頁名稱:生產(chǎn)環(huán)境部署python代碼(django+uwsgi+nginx)-創(chuàng)新互聯(lián)
URL網(wǎng)址:http://bm7419.com/article46/dgoheg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、網(wǎng)站內(nèi)鏈手機網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站定制網(wǎng)站、做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)