您好,登錄后才能下訂單哦!
這篇文章主要介紹Django中404、500頁面全局配置知識點的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
django版本為2.2.7,全局配置404、500頁面,解決靜態文件路徑等問題
urls中編寫
urlpatterns = [ .............. ] handler404 = 'first.views.page_not_found' #handler404為固定寫法,first.views.page_not_found為404處理函數的位置 handler500 = 'first.views.page_error' #同上
指定的views中
#全局404 def page_not_found(request,exception): from django.shortcuts import render_to_response response = render_to_response('first/404.html',{}) #first/404.html html頁面 response.status_code = 404 return response #全局500 def page_error(exception): from django.shortcuts import render_to_response response = render_to_response('first/500.html',{}) response.status_code = 500 return response
保存運行 在地址欄輸入一個不存在的頁面
會發現并沒有進入我們的配置,這需要我們在settings中進行配置
找到下發這個
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = []
修改為
DEBUG = False #關閉debug模式 這時為生產模式,在將項目部署到服務器時也需要關閉,debug模式會暴露站點的多種信息
ALLOWED_HOSTS = ['*'] # * 為所有都可訪問,部署服務器時需修改
保存后運行
進入了配置,但按下F12發現所有的靜態文件如css、js、圖片等都沒找到,都是404
再進入settings文件,因為我們開啟了生產模式所以Django不再代理靜態文件,可以通過配置來再次代理
找到我們曾經寫的media及static配置
MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, "media") STATIC_URL = '/static/' STATICFILES_DIRS =[ os.path.join(BASE_DIR, 'static'), ] 將 STATICFILES_DIRS =[ os.path.join(BASE_DIR, 'static'), ] 注釋 增加 STATIC_ROOT = os.path.join(BASE_DIR,'static') 保存后在URLS中添加 from django.urls import path,re_path from tlmzp.settings import MEDIA_ROOT,STATIC_ROOT from django.views.static import serve urlpatterns = [ .................. re_path(r'^media/(?P<path>.*)$', serve, {'document_root': MEDIA_ROOT}), #media文件 re_path(r'^static/(?P<path>.*)$', serve, {'document_root': STATIC_ROOT}),#static文件 ]
保存后刷新頁面
所有的靜態文件就都加載了
以上是“Django中404、500頁面全局配置知識點的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。