Django 404、500页面全局配置知识点详解

时间:2021-05-22

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中

#全局404def 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#全局500def 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_pathfrom tlmzp.settings import MEDIA_ROOT,STATIC_ROOTfrom django.views.static import serveurlpatterns = [ .................. 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页面全局配置知识点详解的文章就介绍到这了,更多相关Django 404、500页面全局配置内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章