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

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

如何使用WSGI 部署

Django 首要的部署平臺是WSGI,它是Python Web 服務器和應用的標準。

Django 的startproject 管理命名為你設置一個簡單的默認WSGI 配置,你可以根據你項目的需要做調整并指定任何與WSGI 兼容的應用服務器使用。

Django 包含以下WSGI 服務器的入門文檔:

application 對象

使用WSGI 部署的核心概覽是application 可調用對象,應用服務器使用它來與你的代碼進行交換。在Python 模塊中,它通常一個名為application 的對象提供給服務器使用。

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

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

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

配置settings 模塊

當WSGI 服務器加載你的應用時,Django 需要導入settings 模塊 —— 這里是你的全部應用定義的地方。

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

如果這個變量沒有設置,默認的wsgi.py 設置為mysite.settings,其中mysite 為你的項目的名稱。這是runserver 如何找到默認的settings 文件的機制。

因為環(huán)境變量是進程范圍的,當你在同一個進程中運行多個Django 站點時,它將不能工作。使用mod_wsgi 就是這個情況。

為了避免這個問題,可以使用mod_wsgi 的守護進程模式,讓每個站點位于它自己的守護進程中,或者在wsgi.py中通過強制使用os.environ["DJANGO_SETTINGS_MODULE"] = "mysite.settings" 來覆蓋這個值。

運用WSGI 中間件

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

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

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

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

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

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

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