亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • python為Django項目上的每個應用程序創建不同的自定義404頁面(最佳答案)

python為Django項目上的每個應用程序創建不同的自定義404頁面(最佳答案)

發布時間:2020-08-19 20:31:02 來源:腳本之家 閱讀:131 作者:像風一樣愛自由 欄目:開發技術

有沒有一種方法可以為Django項目中的每個應用程序創建多個自定義錯誤模板,我的意思是,在我的項目中,我有3個應用程序,每個應用程序將顯示3種不同的custom 404錯誤.

現在,我在后臺應用程序和前臺顯示相同的404錯誤頁面.

最佳答案

創建一個自定義error view并將其分配給根urls.py中的handler404變量:

from django.views.defaults import page_not_found
 
def my_error_404(request, exception):
 template_name = '404.html'
 if request.path.startswith('/backoffice/'):
  template_name='backoffice/404.html'
 elif request.path.startswith('/frontoffice/'):
  template_name='frontoffice/404.html'
 return page_not_found(request, exception, template_name=template_name)

此代碼適用于Django 1.9.如果使用django< = 1.9,則從視圖中刪除exception參數.

知識點補充:

Django 自定義 404 500 等錯誤頁面

起步
要想自定義錯誤頁面,需要關閉調試模式 DEBUG = False ,因為調試模式的錯誤頁面是開發下會顯示錯誤信息的。

有兩種方法可以實現自定義的錯誤頁面。

方法一:創建特定命名的模板文件

這是一種非常簡單的方式。在項目模板文件夾 templates 中創建命名為 404.html 的模板文件即可。

這個方式是其實是借用了 Django 的模板查找規則進行的。源碼在 django.views.defaults.py 中:

ERROR_404_TEMPLATE_NAME = '404.html'

def page_not_found(request, exception, template_name=ERROR_404_TEMPLATE_NAME):
    ...

總的來說,方法一不需要設路由,只要新建規定名稱的模板就能生效了。

方法二:設置句柄

如果需要更個性化的錯誤頁面,不需要拘泥于特定的模板文件名,可以重新設置句柄,具體是在 urls.py 中設置:

# urls.py
def page_not_found(request, exception):
 return render(request, 'your_404_filename.html')

handler404 = page_not_found

urlpatterns = [
 ...
]

除了能捕獲不存在路由地址,還能捕獲視圖中 raise Http404('message') 拋出的異常。

哪些錯誤頁面可以配置
具體能自定義錯誤頁面的有 4 中狀態碼:

# django.views.defaults.py
ERROR_404_TEMPLATE_NAME = '404.html'
ERROR_403_TEMPLATE_NAME = '403.html'
ERROR_400_TEMPLATE_NAME = '400.html'
ERROR_500_TEMPLATE_NAME = '500.html'

# django.conf.urls.__init__.py
handler400 = defaults.bad_request
handler403 = defaults.permission_denied
handler404 = defaults.page_not_found
handler500 = defaults.server_error

總結

到此這篇關于python為Django項目上的每個應用程序創建不同的自定義404頁面(最佳答案)的文章就介紹到這了,更多相關python django自定義404頁面內容請搜索億速云以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持億速云!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

沛县| 台山市| 洪雅县| 平利县| 凤山市| 金堂县| 开封市| 黄大仙区| 游戏| 眉山市| 虎林市| 潍坊市| 淮安市| 莱州市| 黄大仙区| 文登市| 桂林市| 马鞍山市| 通渭县| 灵武市| 咸阳市| 广河县| 富平县| 新化县| 泰安市| 长丰县| 黑龙江省| 怀来县| 个旧市| 潮州市| 牡丹江市| 丰镇市| 永川市| 邳州市| 石棉县| 灵宝市| 伊通| 西吉县| 马山县| 新闻| 东安县|