在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Python/ 如何使用WSGI 部署
點(diǎn)擊劫持保護(hù)
安全問題歸檔
Model 類參考
將遺留數(shù)據(jù)庫整合到Django
關(guān)聯(lián)對象參考
內(nèi)建基于類的視圖的API
聚合
Django 中的用戶認(rèn)證
django.contrib.humanize
Django管理文檔生成器
分頁
使用Django輸出CSV
加密簽名
文件儲(chǔ)存API
安全
Django中的測試
國際化和本地化
為Django編寫首個(gè)補(bǔ)丁
條件表達(dá)式
日志
模型元選項(xiàng)
部署靜態(tài)文件
執(zhí)行查詢
使用Django認(rèn)證系統(tǒng)
基于類的視圖
中間件
編寫自定義的django-admin命令
Django 的設(shè)置
格式本地化
數(shù)據(jù)庫訪問優(yōu)化
錯(cuò)誤報(bào)告
基于類的內(nèi)建通用視圖
編寫自定義存儲(chǔ)系統(tǒng)
編寫你的第一個(gè) Django 程序 第3部分
編寫數(shù)據(jù)庫遷移
使用表單
編寫你的第一個(gè) Django 程序 第2部分
編寫你的第一個(gè) Django 程序 第1部分
如何使用會(huì)話
系統(tǒng)檢查框架
新手入門
信號
編寫視圖
如何使用WSGI 部署
編寫你的第一個(gè)Django應(yīng)用,第6部分
常見的網(wǎng)站應(yīng)用工具
Widgets
內(nèi)建的視圖
模型實(shí)例參考
視圖層
Django中的密碼管理
高級教程:如何編寫可重用的應(yīng)用
國際化和本地化
"本地特色"附加功能
TemplateResponse 和 SimpleTemplateResponse
模式編輯器
文件上傳
快速安裝指南
部署 Django
表單 API
表單素材 ( <code>Media</code> 類)
管理文件
其它核心功能
查找 API 參考
表單
Admin
數(shù)據(jù)庫函數(shù)
自定義查找
使用基于類的視圖處理表單
管理操作
開發(fā)過程
編寫你的第一個(gè)Django應(yīng)用,第5部分
進(jìn)行原始的sql查詢
模型層
多數(shù)據(jù)庫
編寫你的第一個(gè) Django 程序 第4部分
Django安全
Django 初探
Django異常
重定向應(yīng)用
按需內(nèi)容處理
管理器
視圖裝飾器
驗(yàn)證器
使用Django輸出PDF
File對象
Django 的快捷函數(shù)
基于類的通用視圖 —— 索引
為模型提供初始數(shù)據(jù)
模板層
URL調(diào)度器
中間件
模型

如何使用WSGI 部署

Django 首要的部署平臺(tái)是WSGI,它是Python Web 服務(wù)器和應(yīng)用的標(biāo)準(zhǔn)。

Django 的startproject 管理命名為你設(shè)置一個(gè)簡單的默認(rèn)WSGI 配置,你可以根據(jù)你項(xiàng)目的需要做調(diào)整并指定任何與WSGI 兼容的應(yīng)用服務(wù)器使用。

Django 包含以下WSGI 服務(wù)器的入門文檔:

application 對象

使用WSGI 部署的核心概覽是application 可調(diào)用對象,應(yīng)用服務(wù)器使用它來與你的代碼進(jìn)行交換。在Python 模塊中,它通常一個(gè)名為application 的對象提供給服務(wù)器使用。

startproject 命令創(chuàng)建一個(gè)<project_name>/wsgi.py 文件,它就包含這樣一個(gè)application 可調(diào)用對象。

它既可用于Django 的開發(fā)服務(wù)器,也可以用于線上WSGI 的部署。

WSGI 服務(wù)器從它們的配置中獲得application 可調(diào)用對象的路徑。Django 內(nèi)建的服務(wù)器,叫做runserverrunfcgi 命令,是從WSGI_APPLICATION 設(shè)置中讀取它。默認(rèn)情況下,它設(shè)置為<project_name>.wsgi.application,指向<project_name>/wsgi.py 中的application 可調(diào)用對象。

配置settings 模塊

當(dāng)WSGI 服務(wù)器加載你的應(yīng)用時(shí),Django 需要導(dǎo)入settings 模塊 —— 這里是你的全部應(yīng)用定義的地方。

Django 使用DJANGO_SETTINGS_MODULE 環(huán)境變量來定位settings 模塊。它包含settings 模塊的路徑,以點(diǎn)分法表示。對于開發(fā)環(huán)境和線上環(huán)境,你可以使用不同的值;這完全取決于你如何組織你的settings。

如果這個(gè)變量沒有設(shè)置,默認(rèn)的wsgi.py 設(shè)置為mysite.settings,其中mysite 為你的項(xiàng)目的名稱。這是runserver 如何找到默認(rèn)的settings 文件的機(jī)制。

因?yàn)榄h(huán)境變量是進(jìn)程范圍的,當(dāng)你在同一個(gè)進(jìn)程中運(yùn)行多個(gè)Django 站點(diǎn)時(shí),它將不能工作。使用mod_wsgi 就是這個(gè)情況。

為了避免這個(gè)問題,可以使用mod_wsgi 的守護(hù)進(jìn)程模式,讓每個(gè)站點(diǎn)位于它自己的守護(hù)進(jìn)程中,或者在wsgi.py中通過強(qiáng)制使用os.environ["DJANGO_SETTINGS_MODULE"] = "mysite.settings" 來覆蓋這個(gè)值。

運(yùn)用WSGI 中間件

你可以簡單地封裝application 對象來運(yùn)用 WSGI 中間件。 例如,你可以在wsgi.py 的底下添加以下這些行:

from helloworld.wsgi import HelloWorldApplication
application = HelloWorldApplication(application)

如果你結(jié)合使用 Django 的application 與另外一個(gè)WSGI application 框架,你還可以替換Django WSGI 的application 為一個(gè)自定義的WSGI application。

某些第三方的WSGI 中間件在處理完一個(gè)請求后不調(diào)用響應(yīng)對象上的close —— most notably Sentry’s error reporting middleware up to version 2.0.7。這些情況下,不會(huì)發(fā)送request_finished 信號。這可能導(dǎo)致數(shù)據(jù)庫和memcache 服務(wù)的空閑連接。

譯者:Django 文檔協(xié)作翻譯小組,原文:WSGI servers。

本文以 CC BY-NC-SA 3.0 協(xié)議發(fā)布,轉(zhuǎn)載請保留作者署名和文章出處。

Django 文檔協(xié)作翻譯小組人手緊缺,有興趣的朋友可以加入我們,完全公益性質(zhì)。交流群:467338606。