Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为什么Django不传递带有默认404视图的错误消息?

为什么Django不传递带有默认404视图的错误消息?
EN

Stack Overflow用户
提问于 2011-10-16 03:31:35
回答 3查看 414关注 0票数 2

(上下文:我对Django和web开发仍然非常陌生。)

1)有人能解释一下下面这句话的理由吗? 本问答回答了如何处理它的问题,但没有回答为什么它可能是一个好/坏的主意。

医生们状态,“page_not_found视图应该足以满足99%的Web应用程序,但是如果您想要覆盖它,可以在URLconf中指定handler404”。

也就是说,page_not_found视图只传递请求的URL,并忽略引发异常时提供的任何消息。在我看来,在默认情况下为404.html模板提供有用提示的选项对每个人都有好处。

2)我目前正在创建一个自定义视图,以便在以下情况下传递有用的消息。有什么理由我不应该吗?

我使用矩阵URL,所以基本资源是一个普通的分层URL,后面跟着基本格式的矩阵选项:;filter_type1=item:value,item:value;filter_type2=item:value.

因此,根据语法分析在发生错误之前得到的距离来提供有用的消息是非常容易的。对我来说,传递以下信息似乎很有帮助:

  • 允许的filter_types是: type1,type2,type3。或
  • filter_type a允许的项目是: item1、item2、item3。

如果我错过了其他地方的解释,我很抱歉。我已经看了,我被问到google django-用户,但没有得到答复。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-10-16 07:33:24

我不太确定问题是什么。默认情况下,找到视图是基本的,因为没有那么多情况需要解释为什么没有找到页面,只是没有找到。

我认为“矩阵选项”是指URL/GET参数,如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://domain.com/page/?option1=value&option2=value..

如果输入了不正确的参数组合,为什么不抛出404,为什么不默认为基本url/模板(http://domain.com/page/),并带有一条错误消息:"Option1只能是x、y、z“。这样,他们就会看到一个熟悉的页面,并且可以重新尝试他们的选择,而不必从404页面中导航(而且这并不会让人感到困惑,也不会让人困惑到为什么它不起作用)。

您可以使用django的消息传递框架轻松地完成这一任务(我过去就这样做过)。在检查视图中的参数时,向模板传递错误消息。

票数 1
EN

Stack Overflow用户

发布于 2011-10-16 21:07:35

如果您的数据是这样的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://example.com/foo;bar;baz

那么你做错了:)

然后,需要使用正则表达式来解析要处理的数据。

有些人在遇到问题时会想:“我知道,我会使用正则表达式。”现在他们有两个问题。

(Zawinski,1997年)

相反,就像Pasty腿建议的那样,使用GET参数。

更好的是,使用django表单处理和:

  • 创建一个具有验证规则的表单。
  • 呈现该表单中的输入页。
  • 使用表单解析用户输入
  • 如果窗体有效,则显示数据,否则在用户输入旁边显示验证错误。

您可以通过GET请求或POST请求来完成这一任务。POST具有‘干净’urls和更长的数据体的优点。GET意味着urls可以被书签标记。

这一切归结为使用框架的正确部分来完成正确的任务。URL路由使用正则表达式来计算哪个URL访问哪个视图。您制作的url模式越简单,它们就越容易维护。用户输入应由表单处理。

票数 1
EN

Stack Overflow用户

发布于 2013-02-24 12:56:59

我认为你之所以难以理解这一点,是因为你试图混淆两个不同的问题。

首先是实际页面是否被找到的问题。

第二,提供的参数是否有效的问题。

因此,如果(部分) url是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    .../whatever/?param1=value1&param2=value2

如果页面/whatever/defaultnot ,则应该向您显示"404 Page not found"类型的错误消息。在本例中,不能告诉所提供的参数或值是否正确。请求的页面不存在,因此您不知道参数用于哪个页面。您甚至不能假设指定了正确的domain name。可能有许多任意域、urls和页面的参数是有效的,还有许多其他的参数是无效的。

如果页面/whatever/default 被找到,那么:

如果指定错误的参数可能导致该页加载/重定向一个不存在的页,则该页应阻止此操作。如有必要,应由该页面来验证所提供的参数,并采取适当的行动并显示适当的消息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7783972

复制
相关文章
1619. 删除某些元素后的数组均值
给你一个整数数组 arr ,请你删除最小 5% 的数字和最大 5% 的数字后,剩余数字的平均值。
Michel_Rolle
2021/02/26
2.5K0
LeetCode 1619. 删除某些元素后的数组均值
给你一个整数数组 arr ,请你删除最小 5% 的数字和最大 5% 的数字后,剩余数字的平均值。
Michael阿明
2021/02/19
6210
python删除列表元素
remove 删除单个元素,删除首个符合条件的元素,按值删除,返回值为空 List_remove = [1, 2, 2, 2, 3, 4] print(List_remove.remove(2)) print("after remove", List_remove) # None # after remove [1, 2, 2, 3, 4] ---- pop 删除索引位置元素,无参情况下删除最后一个元素,返回删除的元素值 List_pop = [1, 2, 2, 2, 3, 4] print(List
演化计算与人工智能
2020/08/14
1.6K0
python中删除列表中重复元素
在面试中,很可能遇到给定一个含有重复元素的列表,删除其中重复的元素,下边给出三种方法来实现这个功能。
全栈程序员站长
2022/09/07
4.1K0
java列表删除指定位置元素_怎么删除数组中的某个元素
1. 因为数组长度在初始化的时候是指定的并且不可变的,所以不能在原有的数组上直接进行删除操作,需要新建一个长度为当前长度减1的数组
全栈程序员站长
2022/09/22
5.4K0
图解LeetCode——1619. 删除某些元素后的数组均值(程度:简单)
给你一个整数数组 arr ,请你删除最小 5% 的数字和最大 5% 的数字后,剩余数字的平均值。
爪哇缪斯
2023/05/10
1610
图解LeetCode——1619. 删除某些元素后的数组均值(程度:简单)
再谈谈列表元素的删除
之前(以及更早之前)都提到了列表元素的删除,也提到过几种方法,有兴趣的朋友可以去看看,其中一种个人比较倾向的写法大概是这个样子(C++):
用户2615200
2018/08/02
1.8K0
再谈谈列表元素的删除
Swift 日历添加事件 删除事件
import EventKit /** Privacy - Calendars Usage Description 添加日历权限 info.list 配置权限 */ /// 日历添加事件 class KKAddEventClasse: NSObject { /// 添加成功回调 typealias SuccessAddEvent = ((_ identifier: String) -> Void) /// 添加失败回调 typealias ErrorAddEvent =
菜菜不吃蔡
2021/03/20
4.1K1
js数组添加删除数据_如何删除数组中的元素
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/10
14.4K0
js数组添加删除数据_如何删除数组中的元素
numpy入门-数组中添加和删除元素
**numpy.insert(arr,obj,value,axis=None) **
皮大大
2021/03/02
6.3K0
如何从 Python 列表中删除所有出现的元素?
在 Python 中,列表是一种非常常见且强大的数据类型。但有时候,我们需要从一个列表中删除特定元素,尤其是当这个元素出现多次时。本文将介绍如何使用简单而又有效的方法,从 Python 列表中删除所有出现的元素。
网络技术联盟站
2023/06/01
12.3K0
python:删除列表中特定元素的几种方法
终于刷到一条不看答案就能轻松解出来的题目,更重要的是学习到了几种删除列表中元素的方法,值得做一下笔记
冰霜
2022/03/19
8.4K0
python:删除列表中特定元素的几种方法
删除链表中的元素
题意 删除链表中等于给定值 val 的所有节点。 样例 给出链表 1->2->3->3->4->5->3, 和 val = 3, 你需要返回删除3之后的链表:1->2->4->5。 思路 只需要将一个指针,遍历链表,当链表中有元素与 val 值相同时,让当前节点的 next 节点直接指向 当前节点的 next.next 节点即可。 代码实现 /** * Definition for singly-linked list. * public class ListNode { * int val;
一份执着✘
2018/06/04
2.2K0
java数组删除元素_java中删除 数组中的指定元素方法[通俗易懂]
java中删除 数组中的指定元素要如何来实现呢,如果各位对于这个算法不是很清楚可以和小编一起来看一篇关于java中删除 数组中的指定元素的例子。
全栈程序员站长
2022/09/22
8.3K0
lua中删除元素
lua中删除元素常用办法就是t[k]=nil;table库还提供一个接口:table.remove();
用户4766018
2022/08/19
1.7K0
Python 数组和列表:创建、访问、添加和删除数组元素
本页将向您展示如何使用列表作为数组,但要在 Python 中使用数组,您需要导入一个库,比如 NumPy 库。数组用于在一个变量中存储多个值:
小万哥
2023/10/23
1.4K0
Python 数组和列表:创建、访问、添加和删除数组元素
遍历ArrayList,并删除某些元素的方法实现「建议收藏」
本文是根据 https://blog.csdn.net/qq_32575047/article/details/78902254 的帖子进行整理的,在此感谢一下。
全栈程序员站长
2022/11/14
4380
Python 中删除列表元素的三种方法
列表基本上是 Python 中最常用的数据结构之一了,并且删除操作也是经常使用的。
AlwaysBeta
2022/04/20
2.5K0
jQuery实现动态添加和删除(点击按钮添加在页面添加和删除元素)
1:点击添加按钮弹出弹框,form表单可以填写相关的信息 2:点击保存按钮,相关信息会显示在界面的列表里
王小婷
2019/02/26
7.3K0
点击加载更多

相似问题

添加后如何删除事件侦听器

22

仅在移动设备上被"removeEventListener“删除后,无法添加事件侦听器

10

删除元素中的事件侦听器

12

添加/删除事件侦听器-

119

在删除元素之前是否需要删除事件侦听器?

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文