Django学习——全局templates引用的问题
一、问题
在构建网站的时候我们会用到全局的templates处理错误的网页,此时我们需要对urls进行一个映射,使得在使用的时候避免重复调用。在使用的时候还会产生错误代码:
第一个是404界面的,第二个是500界面的(Django:2.2.2)
?: (urls.E007) The custom handler404 view 'index.views.page_not_found' does not take the correct number of arguments (request, exception).
?: (urls.E007) The custom handler500 view 'index.views.page_error' does not take the correct number of arguments (request).
全局视图

二、解决
在一个views中关联html,然后再将views和url建立隐射关系。注意:解决两个问题的关键在于在Django2.2.2下,404的错误不能有参数:exception,但是500的错误必须有exception,如此解决问题。
1.关联views
随便选择一个app的views添加如下的代码
from django.shortcuts import render #
def page_error(request):
return render(request, 'error404.html', status=404) #
def page_not_found(request, exception):
return render(request, 'error404.html', status=500)
视图:
2.映射
在项目的url中使用handler404和handler500这两个指定的变量来完成数据的映射关系,因为是从index的APP中导入的因此是【from index import views】。
# 设置404、500错误状态码
from index import views handler404 = views.page_not_found
handler500 = views.page_error
视图:
3.HTML的代码
其中用{% load staticfiles %}加载全局的资源;用{% static 'images\pk_1.jpg' %}进行资源调用;用href='/music/comment'完成主界面的跳转
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>页面没找到</title>
{% load staticfiles %}
</head>
<body>
<img src="{% static 'images\pk_1.jpg' %}" width="400" height="400">
<br>
<div class="error_main"><a href='/music/comment' class="index">回到首页</a></div>
</body>
</html>
视图:
4.设置
最后将setting中的debug改成False就可以观察到结果了。
三、结果展示
四、总结
报错信息是由于缺少参数,有时候图片加载有问题,分别刷新一下debug的设置,数据就可以显示出来。
附上Django的参考文档:
https://docs.djangoproject.com/en/2.1/ref/settings/#databases
Django学习——全局templates引用的问题的更多相关文章
- Django的学习——全局的static和templates的使用
一.问题 首先我们在进行Django框架搭建的时候我们需要建立一个全局的变量,一是为了实现代码的复用,二是为了方便管理,如下图的样式 二.解决 1.修改setting里面的配置文件①templates ...
- Django学习笔记(14)——AJAX与Form组件知识补充(局部钩子和全局钩子详解)
我在之前做了一个关于AJAX和form组件的笔记,可以参考:Django学习笔记(8)——前后台数据交互实战(AJAX):Django学习笔记(6)——Form表单 我觉得自己在写Django笔记(8 ...
- Django学习笔记(2)——模型,后台管理和视图的学习
一:Web投票示例 本节我们首先从全局范围再复习一下Django的概念,让自己对Django的设计理念, 功能模块,体系架构,基本用法有初步的印象. Django初始的详细博客内容:请点击我 该应用包 ...
- Django学习笔记(1)——初识Django
一:Web框架介绍 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以快速帮你开发特定的系统. Web框架是别人已经设定好的一个web网站模板,你学习它 ...
- Django学习笔记(二):使用Template让HTML、CSS参与网页建立
Django学习笔记(二):使用Template让HTML.CSS参与网页建立 通过本文章实现: 了解Django中Template的使用 让HTML.CSS等参与网页建立 利用静态文件应用网页样式 ...
- Django学习笔记(20)——BBS+Blog项目开发(4)Django如何使用Bootstrap
本文学习如何通过Django使用Bootstrap.其实在之前好几个Django项目中已经尝试使用过了Bootstrap,而且都留有学习记录,我已经大概有了一个大的框架,那么本文就从头再走一遍流程,其 ...
- Django学习笔记(16)——扩展Django自带User模型,实现用户注册与登录
一,项目题目:扩展Django自带User模型,实现用户注册与登录 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册,登录,用户认证,注销,修改密码等功能. ...
- Django学习之路由分发和反向解析
原 Django学习之路由分发和反向解析 2018年07月12日 14:04:55 huangql517 阅读数 519 1>路由分发 我们之前学习的路由配置都是在项目的全局控制文件(项目名称目 ...
- Django学习笔记(五)—— 表单
疯狂的暑假学习之 Django学习笔记(五)-- 表单 參考:<The Django Book> 第7章 1. HttpRequest对象的信息 request.path ...
随机推荐
- 表单验证如何让select设置为必选
<select class="custom-select mr-sm-2" name="province" id="province" ...
- mtime, atime, ctime 的区别
mtime ls -l 显示最近修改文件内容的时间 atime ls -lu 显示最近访问文件的时间 ctime ls -li 显示最近文件有所改变的状态,如文件修改,属性\属主改变,节点,链接变化等 ...
- jenkins使用小技巧:pom.xml文件里的版本随着每次发布变化怎么办?
针对这个问题,构建方法不变, 变化在动态去获取每次打出来的包名, 比如说,本次打出来的报名mypackage-1.0.3-SNAPSHOT.jar 那么,先进入target目录 #先进入target目 ...
- django学习-数据库操作接口API--(CRUD)
初试API(数据库操作接口CRUD) 现在我们进入交互式python命令行,尝试一下django为你创建的各种API,通过以下命令打开python命令行: py -3 manage.py shell进 ...
- day14_7.16 模块
一.模块 1.什么是模块? 模块就是一系列功能的结合体. 模块的三种来源: 1.内置的,也就是python解释器自带的,可以直接导入 2.第三方的,需要下载的 3.自定义的,自己写的模块 模块的四种表 ...
- 高效Redis工具类
一.引言 本篇博客以redis缓存为主.至于什么是redis缓存?还有没有其它的缓存?哪个缓存的性能会更好?这里就不一一做介绍了!(有兴趣的可以自己去百度一下) 在日常的开发中,我们或多或少(必须)的 ...
- Tableau 基础
1.Tableau产品介绍 tableau desktop:桌面端分析工具,分个人版和专业版,可连接几乎所有数据源,速度快 tableau server:一款商业智能应用程序,用于发布和管理table ...
- cnpm包管理
C:\Users\Administrator>npm config set registry http://registry.npm.taobao.org vue 安装 npm install ...
- docker--(MAC ubuntu centos)安装
MacOS 安装 1.homebrew安装(需要mac密码) brew cask install docker 2.手动下载安装 如果需要手动下载,请点击以下链接下载 Stable 或 Edge 版本 ...
- machine_math
1.导数与函数的凹凸性关系: 从下往上看,如果函数是凸出来的就是凸函数,如果是凹的就是凹函数. 函数的凹凸性是二阶函数来判断的. 如果二阶函数大于零,那么就是凸函数,否则就是凹函数. 2.一阶导数为零 ...