欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

在Python的Django框架中編寫(xiě)錯(cuò)誤提示頁(yè)面

 更新時(shí)間:2015年07月22日 09:36:31   投稿:goldensun  
這篇文章主要介紹了在Python的Django框架中編寫(xiě)錯(cuò)誤提示頁(yè)面,包括傳統(tǒng)的404頁(yè)面和設(shè)置連接中斷警告等,需要的朋友可以參考下

你應(yīng)該在生產(chǎn)環(huán)境中把TEMPLATE_DEBUGFalse 如果這個(gè)設(shè)為`` True`` ,為了在那個(gè)好看的錯(cuò)誤頁(yè)面上顯示足夠的東西,Django的模版系統(tǒng)就會(huì)為每一個(gè)模版保存一些額外的信息。
實(shí)現(xiàn)一個(gè)404模板

如果`` DEBUG`` 設(shè)置為`` True`` ,Django會(huì)顯示那個(gè)自帶的404錯(cuò)誤頁(yè)面。 但如果`` DEBUG`` 被設(shè)置成`` False`` ,那它的行為就不一樣了: 他會(huì)顯示一個(gè)在你的模版根目錄中名字叫`` 404.html`` 的模版 所以,當(dāng)你準(zhǔn)備部署你的應(yīng)用時(shí),你會(huì)需要?jiǎng)?chuàng)建這個(gè)模版并在里面放一些有意義的“頁(yè)面未找到”的信息

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

{% extends "base.html" %}

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

{% block content %}
<h1>Page not found</h1>

<p>Sorry, but the requested page could not be found.</p>
{% endblock %}

要測(cè)試你的404.html頁(yè)面是否正常工作,僅僅需要將DEBUG 設(shè)置為`` False`` ,并且訪問(wèn)一個(gè)并不存在的URL。 (它將在`` sunserver`` 上工作的和開(kāi)發(fā)服務(wù)器上一樣好)
實(shí)現(xiàn)一個(gè)500模板

類似的,如果`` DEBUG`` 設(shè)置為`` False`` ,Djang不再會(huì)顯示它自帶的應(yīng)對(duì)未處理的Python異常的錯(cuò)誤反饋?lái)?yè)面。 作為代替,它會(huì)查找一個(gè)名為`` 500.html`` 的模板并且顯示它。 像`` 404.html`` 一樣,這個(gè)模板應(yīng)該被放置在你的模板根目錄下。

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

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
  "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
  <title>Page unavailable</title>
</head>
<body>
  <h1>Page unavailable</h1>

  <p>Sorry, but the requested page is unavailable due to a
  server hiccup.</p>

  <p>Our engineers have been notified, so check back later.</p>
</body>
</html>

設(shè)置錯(cuò)誤警告

當(dāng)你使用Django制作的網(wǎng)站運(yùn)行中出現(xiàn)了異常,你會(huì)希望去了解以便于修正它。 默認(rèn)情況下,Django在你的代碼引發(fā)未處理的異常時(shí),將會(huì)發(fā)送一封Email至開(kāi)發(fā)者團(tuán)隊(duì)。但你需要去做兩件事來(lái)設(shè)置這種行為。

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

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

第二,確保你的服務(wù)器配置為發(fā)送電子郵件。 設(shè)置好postfix,sendmail或其他本書(shū)范圍之外但是與Django設(shè)置相關(guān)的郵件服務(wù)器,你需要將將 EMAIL_HOST設(shè)置為你的郵件服務(wù)器的正確的主機(jī)名. 默認(rèn)模式下是設(shè)置為'localhost', 這個(gè)設(shè)置對(duì)大多數(shù)的共享主機(jī)系統(tǒng)環(huán)境適用. 取決于你的安排的復(fù)雜性,你可能還需要設(shè)置 EMAIL_HOST_USER,EMAIL_HOST_PASSWORD,EMAIL_PORT或EMAIL_USE_TLS。

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

如果你安裝有CommonMiddleware(比如,你的MIDDLEWARE_CLASSES設(shè)置包含了'django.middleware.common.CommonMiddleware'的情況下,默認(rèn)就安裝了CommonMiddleware),你就具有了設(shè)置這個(gè)選項(xiàng)的能力:有人在訪問(wèn)你的Django網(wǎng)站的一個(gè)非空的鏈接而導(dǎo)致一個(gè)404錯(cuò)誤的發(fā)生和連接中斷的情況,你將收到一封郵件. 如果你想激活這個(gè)特性,設(shè)置SEND_BROKEN_LINK_EMAILS 為T(mén)rue(默認(rèn)為False),并設(shè)置你的MANAGERS為某個(gè)人或某些人的郵件地址,這些郵件地址將會(huì)收到報(bào)告連接中斷錯(cuò)誤的郵件. MANAGERS使用和ADMINS 同樣的語(yǔ)法.例如:

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

請(qǐng)注意,錯(cuò)誤的Email會(huì)令人感到反感,對(duì)于任何人來(lái)說(shuō)都是這樣。

相關(guān)文章

  • 教你用Python+selenium搭建自動(dòng)化測(cè)試環(huán)境

    教你用Python+selenium搭建自動(dòng)化測(cè)試環(huán)境

    今天給大家?guī)?lái)的是關(guān)于Python的相關(guān)知識(shí),文章圍繞著如何用Python+selenium搭建自動(dòng)化測(cè)試環(huán)境展開(kāi),文中有非常詳細(xì)的介紹,需要的朋友可以參考下
    2021-06-06
  • Pycharm?2020最新永久激活碼(附最新激活碼和插件)

    Pycharm?2020最新永久激活碼(附最新激活碼和插件)

    最近很多朋友的Pycharm激活時(shí)間又過(guò)期了,今天小編再把激活的方法匯總和工具分享一下,文中給大家分享兩種方式,需要的朋友直接拿去用吧
    2020-01-01
  • python設(shè)置 matplotlib 正確顯示中文的四種方式

    python設(shè)置 matplotlib 正確顯示中文的四種方式

    這篇文章主要介紹了python設(shè)置 matplotlib 正確顯示中文的四種方式,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-05-05
  • 超詳細(xì)PyTorch實(shí)現(xiàn)手寫(xiě)數(shù)字識(shí)別器的示例代碼

    超詳細(xì)PyTorch實(shí)現(xiàn)手寫(xiě)數(shù)字識(shí)別器的示例代碼

    這篇文章主要介紹了超詳細(xì)PyTorch實(shí)現(xiàn)手寫(xiě)數(shù)字識(shí)別器的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Pytest自動(dòng)化測(cè)試的具體使用

    Pytest自動(dòng)化測(cè)試的具體使用

    Pytest是一個(gè)Python的自動(dòng)化測(cè)試框架,它可用于編寫(xiě)單元測(cè)試、功能測(cè)試、集成測(cè)試和端到端測(cè)試,本文就來(lái)介紹一下Pytest自動(dòng)化測(cè)試的具體使用,感興趣的可以了解一下
    2024-01-01
  • Python實(shí)現(xiàn)自動(dòng)簽到腳本功能

    Python實(shí)現(xiàn)自動(dòng)簽到腳本功能

    這篇文章主要介紹了Python實(shí)現(xiàn)自動(dòng)簽到腳本,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Python協(xié)程實(shí)踐分享

    Python協(xié)程實(shí)踐分享

    這篇文章主要分享的是Python協(xié)程實(shí)踐,協(xié)程簡(jiǎn)單來(lái)說(shuō)就是一個(gè)更加輕量級(jí)的線程,并且不由操作系統(tǒng)內(nèi)核管理,完全由程序所控制,下文相關(guān)介紹需要的朋友可以參考一下
    2022-05-05
  • python實(shí)現(xiàn)簡(jiǎn)單倒計(jì)時(shí)功能

    python實(shí)現(xiàn)簡(jiǎn)單倒計(jì)時(shí)功能

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)單倒計(jì)時(shí)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • Django 項(xiàng)目通過(guò)加載不同env文件來(lái)區(qū)分不同環(huán)境

    Django 項(xiàng)目通過(guò)加載不同env文件來(lái)區(qū)分不同環(huán)境

    這篇文章主要介紹了Django 項(xiàng)目如何通過(guò)加載不同env文件來(lái)區(qū)分不同環(huán)境,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • Python提示[Errno 32]Broken pipe導(dǎo)致線程crash錯(cuò)誤解決方法

    Python提示[Errno 32]Broken pipe導(dǎo)致線程crash錯(cuò)誤解決方法

    這篇文章主要介紹了Python提示[Errno 32]Broken pipe導(dǎo)致線程crash錯(cuò)誤解決方法,是ThreadingHTTPServer實(shí)現(xiàn)http服務(wù)中經(jīng)常會(huì)遇到的問(wèn)題,需要的朋友可以參考下
    2014-11-11

最新評(píng)論