Django 404500页面全局配置

Posted ddb1-1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django 404500页面全局配置相关的知识,希望对你有一定的参考价值。

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 404500页面全局配置的主要内容,如果未能解决你的问题,请参考以下文章

Django---media静态文件的配置&全局变量

SpringBoot系列教程web篇之404500异常页面配置

Django自定义404500等页面模板

四 Django框架,models.py模块,数据库操作——创建表数据类型索引admin后台,补充Django目录说明以及全局配置文件配置

26Django实战第26天:配置全局导航

微信小程序 (全局配置和页面配置)