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 defpage_not_found(request,exception): fromdjango.shortcutsimportrender_to_response response=render_to_response('first/404.html',{})#first/404.htmlhtml页面 response.status_code=404 returnresponse #全局500 defpage_error(exception): fromdjango.shortcutsimportrender_to_response response=render_to_response('first/500.html',{}) response.status_code=500 returnresponse
保存运行在地址栏输入一个不存在的页面
会发现并没有进入我们的配置,这需要我们在settings中进行配置
找到下发这个
#SECURITYWARNING:don'trunwithdebugturnedoninproduction!
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中添加 fromdjango.urlsimportpath,re_path fromtlmzp.settingsimportMEDIA_ROOT,STATIC_ROOT fromdjango.views.staticimportserve urlpatterns=[ .................. re_path(r'^media/(?P.*)$',serve,{'document_root':MEDIA_ROOT}),#media文件 re_path(r'^static/(?P .*)$',serve,{'document_root':STATIC_ROOT}),#static文件 ]
保存后刷新页面
所有的静态文件就都加载了
到此这篇关于Django404、500页面全局配置知识点详解的文章就介绍到这了,更多相关Django404、500页面全局配置内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。