django 的runserver只為開發環境提供了單程序的django伺服器,這不能用於生產環境上。將我們的django程式部署到產品伺服器執行之前,我們可能還要關注下面提到的一些地方。
使用django-admin.py startproject 生成的專案,預設settings.py中的debug是開戶的,這在正式環境可能會帶來以下問題:
所有的資料庫查詢將被儲存在記憶體中, 以 django.db.connection.queries 的形式. 你可以想象,這個吃記憶體!
任何404錯誤都將呈現django的特殊的404頁面,而不是普通的404頁面。 這個頁面包含潛在的敏感資訊,但是不應暴露在公共網際網路。
你的應用中任何未捕獲的異常,從基本的python語法錯誤到資料庫錯誤以及模板語法錯誤都會返回漂亮的django錯誤頁面。 這個頁面包含了比404錯誤頁面更多的敏感資訊,所以這個頁面絕對不要公開暴露。
簡單的說,把debug設定成true 相當於告訴django你的**只會被可信任的開發人員使用。 internet裡充滿了不可信賴的事物,當你準備部署你的應用時,首要的事情就是把debug設定為false 。
類似地,你應該在生產環境中把template_debug設定為false ,如果這個設為true ,為了在那個好看的錯誤頁面上顯示足夠的東西,django的模版系統就會為每乙個模版儲存一些額外的資訊。
如果debug 設定為true ,django會顯示那個自帶的404錯誤頁面。否則他會顯示乙個在你的模版根目錄中名字叫404.html的模版 所以,當你準備部署你的應用時,你會需要建立這個模版並在裡面放一些有意義的「頁面未找到」的資訊。
類似地,500也是一樣的。
admins=('devloper1
', '
devloper1
', '
',)
第二,確保你的伺服器配置為傳送電子郵件。 設定好postfix或sendmail等與django設定相關的郵件伺服器,你需要將 email_host設定為你的郵件伺服器的正確的主機名. 預設模式下是設定為』localhost』。
如果你想啟用這個特性,設定send_broken_link_emails 為true(預設為false),並設定你的managers為關注者的郵件位址,這些郵件位址將會收到報告連線中斷錯誤的郵件。
managers=('devloper1
', '
devloper1
', '
',)
從上面提到的一些資訊(不僅僅是上面一些資訊)我們可以看出,在開發環境、測試環境和正式環境我們可能需要不同的配置,怎樣避免在不同的環境產生的**不一致呢。
設定成兩個全面的,彼此獨立的配置檔案
設定乙個基本的配置檔案(比如,為了開發)和第二個(為了產品)配置檔案,第二個配置檔案僅僅從基本的那個配置檔案匯入配置,並對需要定義的進行複寫.
使用乙個單獨的配置檔案,此配置檔案包含乙個python的邏輯判斷根據上下文環境改變設定。
這裡只拿第三種方式舉個小例子:
#settings.py
import socket
if socket.gethostname() == '
my‐laptop
':debug = template_debug = true
else:
debug = template_debug = false
#...
我們需要記住,django_settings_module環境變數指定了我們應用程式的入口,它指定的settings裡的urlconf完成核心控制器功能。
django真正的部署方案(後續學習分享):
Django 開發的準備工作
本文記錄如何準備 django web 的開發 建立虛擬環境 python m venv myenv 進入虛擬環境 myenv scripts activate 安裝 django python m pip install django 3.0 檢視 django 版本號 python m djan...
django開發前準備工作
安裝pip python包管理器,類似npm 安裝virtualenv python虛擬環境,可以形成乙個版本隔絕的資料夾 virtualenv使用方法 1,virtualenv projectname ps 安裝虛擬環境目錄 2,進入虛擬目錄中的script資料夾,執行activate 命令,啟動...
環境部署01 準備工作
一 了解軟體專案 1.專案框架 2.技術語言 3.測試要求 二 測試技能高階 1.環境搭建 2.專案部署 3.異常處理 三 了解專案環境基本準備 1.搭建準備 1.1硬體系統 計算機 伺服器 雲服務 1.2軟體系統 系統軟體 windows 客戶端 linux 服務端 unix 服務端 macos ...