zoukankan      html  css  js  c++  java
  • 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文件
    ]
    保存后刷新页面

     所有的静态文件就都加载了

  • 相关阅读:
    二维数组实现八皇后问题
    解决Java接口内部类的main()方法无法打印输出的问题
    hbase shell 常见命令
    hbase-0.94 Java API
    JavaMail简单版实验测试
    经典KMP算法C++与Java实现代码
    Hadoop之倒排索引
    哈希哈希
    Servlet和JSP学习指导与实践(三):JSP助阵
    Servlet和JSP学习指导与实践(二):Session追踪
  • 原文地址:https://www.cnblogs.com/ddb1-1/p/12455147.html
Copyright © 2011-2022 走看看