如何在django中故意返回404页面

2023-12-19

我在 django 中制作了自定义 404 页面。我正在尝试故意获取 404 错误页面。

myproject/urls.py:

from website.views import customhandler404, customhandler500, test

urlpatterns = [
    re_path(r'^admin/', admin.site.urls),
    re_path(r'^test/$', test, name='test'),
]
handler404 = customhandler404
handler500 = customhandler500

网站/views.py

def customhandler404(request):
    response = render(request, '404.html',)
    response.status_code = 404
    return response


def customhandler500(request):
    response = render(request, '500.html',)
    response.status_code = 500
    return response

def test(request):
    raise Http404('hello')

但是当我去 127.0.0.1:8000/test/ 时,它似乎返回500.html

终端说:

[24/Mar/2018 22:32:17] "GET /test/ HTTP/1.1" 500 128

怎样才能故意得到404页面呢?


当您将 debug 设置为 False 时,您没有自定义处理程序,并且响应的状态代码为 404,将使用基本模板目录中的 404.html(如果存在)。要返回 404 状态的响应,您只需返回一个实例即可django.http.HttpResponseNotFound。您收到 500 的原因是因为您提出了错误而不是返回响应。所以,你的测试函数可以简单地修改为这个

from django.http import HttpResponseNotFound
def test(request):
    return HttpResponseNotFound("hello")         

Update:

所以事实证明,您收到 500 错误的原因不是您引发了异常,而是函数签名不正确。当我半年多前回答这个问题时,我忘记了django为你捕获了HTTP404异常。但是,处理程序视图具有与普通视图不同的签名。 404 的默认处理程序是defaults.page_not_found(request, exception, template_name='404.html'),它需要 3 个参数。所以你的自定义处理程序实际上应该是

def customhandler404(request, exception, template_name='404.html'):
    response = render(request, template_name)
    response.status_code = 404
    return response

不过,在这种情况下,您也可以只使用默认处理程序。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在django中故意返回404页面 的相关文章

随机推荐

  • javascript正则表达式删除括号中的尾随数字

    我如何替换 追加something 22 字符串到something 使用某种匹配某物的表达式不是常量 它总是不同的 但部分 整数 总是相同的 干杯 EDIT 我发现这有点令人困惑 对我来说也是如此 这就是我的意思 我有一个字符串 一个词
  • 如何在 Android UI 中设置布局背景

    我是 Android 编程新手 我有一个带有一些的用户界面TextView and Button控制 如何在这些组件后面设置背景 我们称之为background png 在您的父布局元素中 例如线性布局或其他 只需添加android bac
  • 解释如何在 Rails 中利用 order 子句

    我很难理解这一部分是如何从这个网站关于 Rails SQL 注入 http rails sqli org resources works 在 ORDER BY 子句中利用 SQL 注入很棘手 但 CASE 语句可用于测试其他字段 将排序列切
  • 使用 Azure Active Directory 访问 Azure Function 时,Blazor 客户端出现 CORS 错误

    我已经尝试部署 Blazor PWA 两天了 到目前为止没有任何成功 如果有人知道我做错了什么 我将非常感激 你好 我可以自己解决大部分问题 但现在使用 AAD 遇到了 CORS 问题 这是我的项目设置 Blazor WebAssembly
  • 查找无序字谜对子串的数量

    我正在尝试解决以下问题 https www hackerrank com challenges sherlock and anagrams https www hackerrank com challenges sherlock and a
  • Web 应用程序编译错误 - ASP.NET 参考

    我当前的 Web 应用程序在本地和实时运行良好 我当前正在使用 Visual Studio 选项 添加 Web 部署项目 编译我的 Web 应用程序 以便所有后面的代码都编译到 DLL 中 有一个特定的构建错误我无法摆脱 错误 50 命名空
  • 为了清晰起见,重构嵌套 IF 语句[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我想重构这个繁琐的方法以使其更具可读性 它有太多我喜欢的嵌套 IF 你会如何重构这个 public static void HandleUplo
  • CQRS - 是否允许从写入端调用读取端?

    我开始阅读有关 CQRS 的内容 但我有点困惑 是否允许在写入端调用读取端来获取附加信息 http cqrs nu Faq command handlers http cqrs nu Faq command handlers在这里他们说这是
  • 将 Postgres \i 输入的输出放入文件?

    快速问题 我希望 如果我使用 i 将输入文件输入 psql 我可以将查询的输出保存到文件中吗 如果是这样 怎么办 谢谢 Using o正如其他人所推荐的 是一个很好的解决方案 不过 只是为了好玩 另一种方法是将输入文件通过管道传输到psql
  • Facebook Messenger 客户聊天插件在未登录时不显示

    我已在我们的网站之一上集成了 Facebook 客户插件 我按照开发人员文档中的说明进行操作 当有活跃的 Facebook 会话时 它工作正常 但是 当没有活动的 Facebook 会话时 该插件根本不会出现 我可能错过了一些东西 但我不知
  • React Native listview:当行到达底部时如何将行粘在屏幕底部

    Using stickyHeaderIndices Ref 粘性标题索引 https facebook github io react native docs listview html stickyheaderindices 在 Reac
  • 将文件设置保存在 ini 而不是注册表中

    我是 MFC 新手 在 myApp InitInstance 中创建第一个应用程序后 我有 SetRegistryKey T Local AppWizard Generated Applications 我可以删除它并将设置保存到我自己的
  • 如何在 html/css 中将图像旁边的文本垂直居中?

    在 html 中将图像旁边的文本垂直居中的最佳和最简单的方法是什么 需要与浏览器版本 类型无关 纯 html CSS 解决方案 这可能会让你开始 http phrogz net CSS vertical align index html 我
  • C++ 中有“byte”数据类型吗?

    如果存在 是否需要包含头文件 此代码会导致编译错误 int main byte b 2 error 不 没有所谓的类型 byte 在 C 中 你想要的是unsigned char 或者 如果您正好需要 8 位 uint8 t from
  • 从 Fortran 中读取 C++“Hello World”

    我正在尝试验证一个用 c 编写的简单的 hello world 函数可以从 FORTRAN 脚本 gfortran 4 9 20 调用 我对 c 和 FORTRAN 都没什么经验 所以我认为这是我应该开始的 code cpp include
  • 使用 ImageView 快速连续显示多张图像

    我有一个应用程序 在一个窗口中 有一个 NSImageView 用户应该能够将任何文件 文件夹 不仅仅是图像 拖放到图像视图中 因此我对 NSImageView 类进行了子类化以添加对这些类型的支持 我选择 NSImageView 而不是普
  • 如何使用 Unix join 获取外连接中的所有字段?

    假设我有两个文件 en csv and sp csv 每个包含恰好两个逗号分隔的记录 en csv 1 dog red car 3 cat white boat sp csv 2 conejo gris tren 3 gato blanco
  • 如何将一个文档中的数组值映射到另一个文档并显示在结果中

    我是 Couchbase 的新手 已经尝试了几个小时了 已查看文档但无法找到这个特定场景 我的存储桶中有文档 type order order id 1 products product id 1 qty 10 product id 2 q
  • 返回具有最大子文档的文档

    我试图根据日期值返回一个包含最大子文档的文档 到目前为止 我能够创建正确的对象 但是查询返回所有子文档而不是具有最大日期的子文档 例如 我的数据存储为 value 1 id 5cb9ea0c75c61525e0176f96 name Tes
  • 如何在django中故意返回404页面

    我在 django 中制作了自定义 404 页面 我正在尝试故意获取 404 错误页面 myproject urls py from website views import customhandler404 customhandler50