日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

在Python的Django框架中編寫錯誤提示頁面

系統 1762 0

你應該在生產環境中把TEMPLATE_DEBUGFalse 如果這個設為`` True`` ,為了在那個好看的錯誤頁面上顯示足夠的東西,Django的模版系統就會為每一個模版保存一些額外的信息。
實現一個404模板

如果`` DEBUG`` 設置為`` True`` ,Django會顯示那個自帶的404錯誤頁面。 但如果`` DEBUG`` 被設置成`` False`` ,那它的行為就不一樣了: 他會顯示一個在你的模版根目錄中名字叫`` 404.html`` 的模版 所以,當你準備部署你的應用時,你會需要創建這個模版并在里面放一些有意義的“頁面未找到”的信息

這里有一個`` 404.html``的示例,你可以從它開始。 假定你使用的模板繼承并定義一個 `` base.html``,該頁面由titlecontent兩塊組成。

            
{% extends "base.html" %}

{% block title %}Page not found{% endblock %}

{% block content %}

            

Page not found

Sorry, but the requested page could not be found.

{% endblock %}

要測試你的404.html頁面是否正常工作,僅僅需要將DEBUG 設置為`` False`` ,并且訪問一個并不存在的URL。 (它將在`` sunserver`` 上工作的和開發服務器上一樣好)
實現一個500模板

類似的,如果`` DEBUG`` 設置為`` False`` ,Djang不再會顯示它自帶的應對未處理的Python異常的錯誤反饋頁面。 作為代替,它會查找一個名為`` 500.html`` 的模板并且顯示它。 像`` 404.html`` 一樣,這個模板應該被放置在你的模板根目錄下。

這里有一個關于500.html的比較棘手的問題。你永遠不能確定`` 為什么``會顯示這個模板,所以它不應該做任何需要連接數據庫,或者依賴任何可能被破壞的基礎構件的事情。 (例如:它不應該使用自定義模板標簽。)如果它用到了模板繼承,那么父模板也就不應該依賴可能被破壞的基礎構件。 因此,最好的方法就是避免模板繼承,并且用一些非常簡單的東西。 這是一個`` 500.html`` 的例子,可以把它作為一個起點:

            
              Page unavailable
            
            

Page unavailable

Sorry, but the requested page is unavailable due to a server hiccup.

Our engineers have been notified, so check back later.

設置錯誤警告

當你使用Django制作的網站運行中出現了異常,你會希望去了解以便于修正它。 默認情況下,Django在你的代碼引發未處理的異常時,將會發送一封Email至開發者團隊。但你需要去做兩件事來設置這種行為。

首先,改變你的ADMINS設置用來引入你的E-mail地址,以及那些任何需要被注意的聯系人的E-mail地址。 這個設置采用了類似于(姓名, Email)元組,像這樣:

            
ADMINS = (
  ('John Lennon', 'jlennon@example.com'),
  ('Paul McCartney', 'pmacca@example.com'),
)


          

第二,確保你的服務器配置為發送電子郵件。 設置好postfix,sendmail或其他本書范圍之外但是與Django設置相關的郵件服務器,你需要將將 EMAIL_HOST設置為你的郵件服務器的正確的主機名. 默認模式下是設置為'localhost', 這個設置對大多數的共享主機系統環境適用. 取決于你的安排的復雜性,你可能還需要設置 EMAIL_HOST_USER,EMAIL_HOST_PASSWORD,EMAIL_PORT或EMAIL_USE_TLS。

你還可以設置EMAIL_SUBJECT_PREFIX以控制Django使用的 error e-mail的前綴。 默認情況下它被設置為'[Django] '
設置連接中斷警報

如果你安裝有CommonMiddleware(比如,你的MIDDLEWARE_CLASSES設置包含了'django.middleware.common.CommonMiddleware'的情況下,默認就安裝了CommonMiddleware),你就具有了設置這個選項的能力:有人在訪問你的Django網站的一個非空的鏈接而導致一個404錯誤的發生和連接中斷的情況,你將收到一封郵件. 如果你想激活這個特性,設置SEND_BROKEN_LINK_EMAILS 為True(默認為False),并設置你的MANAGERS為某個人或某些人的郵件地址,這些郵件地址將會收到報告連接中斷錯誤的郵件. MANAGERS使用和ADMINS 同樣的語法.例如:

            
MANAGERS = (
  ('George Harrison', 'gharrison@example.com'),
  ('Ringo Starr', 'ringo@example.com'),
)


          

請注意,錯誤的Email會令人感到反感,對于任何人來說都是這樣。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 云龙县| 土默特左旗| 长海县| 方城县| 寿宁县| 罗平县| 诸城市| 峨眉山市| 常山县| 玉屏| 浮梁县| 明溪县| 黑山县| 普宁市| 长沙县| 藁城市| 天门市| 陇西县| 安岳县| 彩票| 东城区| 米泉市| 三原县| 麻栗坡县| 台东县| 西藏| 许昌市| 双流县| 合山市| 镶黄旗| 皋兰县| 漠河县| 西吉县| 翁源县| 滨海县| 安陆市| 呼玛县| 辽宁省| 伊金霍洛旗| 衡水市| 西青区|