溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Django中404、500頁(yè)面全局配置知識(shí)點(diǎn)的示例分析

發(fā)布時(shí)間:2021-06-08 11:43:35 來(lái)源:億速云 閱讀:177 作者:小新 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹Django中404、500頁(yè)面全局配置知識(shí)點(diǎn)的示例分析,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

django版本為2.2.7,全局配置404、500頁(yè)面,解決靜態(tài)文件路徑等問(wèn)題

urls中編寫(xiě)

urlpatterns = [
 ..............
]
handler404 = 'first.views.page_not_found' #handler404為固定寫(xiě)法,first.views.page_not_found為404處理函數(shù)的位置
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頁(yè)面
  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

保存運(yùn)行 在地址欄輸入一個(gè)不存在的頁(yè)面

Django中404、500頁(yè)面全局配置知識(shí)點(diǎn)的示例分析

會(huì)發(fā)現(xiàn)并沒(méi)有進(jìn)入我們的配置,這需要我們?cè)趕ettings中進(jìn)行配置

找到下發(fā)這個(gè)

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = []

修改為

DEBUG = False #關(guān)閉debug模式 這時(shí)為生產(chǎn)模式,在將項(xiàng)目部署到服務(wù)器時(shí)也需要關(guān)閉,debug模式會(huì)暴露站點(diǎn)的多種信息
ALLOWED_HOSTS = ['*'] # * 為所有都可訪問(wèn),部署服務(wù)器時(shí)需修改

保存后運(yùn)行

Django中404、500頁(yè)面全局配置知識(shí)點(diǎn)的示例分析

進(jìn)入了配置,但按下F12發(fā)現(xiàn)所有的靜態(tài)文件如css、js、圖片等都沒(méi)找到,都是404

再進(jìn)入settings文件,因?yàn)槲覀冮_(kāi)啟了生產(chǎn)模式所以Django不再代理靜態(tài)文件,可以通過(guò)配置來(lái)再次代理

找到我們?cè)?jīng)寫(xiě)的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文件
]

保存后刷新頁(yè)面

Django中404、500頁(yè)面全局配置知識(shí)點(diǎn)的示例分析

所有的靜態(tài)文件就都加載了

以上是“Django中404、500頁(yè)面全局配置知識(shí)點(diǎn)的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI