【问题标题】:abort(400) raising 500 internal server error - Flask 1.0abort(400) 引发 500 内部服务器错误 - Flask 1.0
【发布时间】:2018-10-10 03:25:41
【问题描述】:

我有这个功能:

if not (payload.get('password') == payload.get('password_cpy')):
        abort(400)

当我使用flask run 运行应用程序并关闭调试时,我得到一个BadRequest 错误的漂亮打印,原始显示以下信息:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>400 Bad Request</title>
<h1>Bad Request</h1>
<p>The browser (or proxy) sent a request that this server could not 
understand.</p>

在终端上我看到了:

127.0.0.1 - - [30/Apr/2018 00:28:20] "POST /sign_in HTTP/1.1" 400 - 

当我运行它并调试时,我得到的错误是:

 werkzeug.exceptions.BadRequest
    werkzeug.exceptions.BadRequest: 400 Bad Request: The browser (or proxy) 
    sent a request that this server could not understand.

在终端我看到一个 500 错误:

127.0.0.1 - - [30/Apr/2018 00:29:27] "POST /sign_in HTTP/1.1" 500 -

为什么我会得到两种不同的行为?有没有办法即使在调试模式下也能得到 400 错误?

【问题讨论】:

  • 您的服务器在达到 500 后是否还在运行。或者它突然崩溃/关闭?
  • 它仍在运行
  • 也许你可以给我们更多的代码在哪里的视图。是否有一个函数需要特定数量的参数,但是当密码丢失时,它会获得更少的参数,以便终端记录实际错误?是否可以通过将其包裹在尝试中来解决...除了。如果我们看到更多的代码,它可能会变得更清晰

标签: python exception flask werkzeug debug-mode


【解决方案1】:

尝试将您的 Flask1.0 更新为 Flask1.0.1
我猜这个 bug 已经在 Flask1.0.1 中修复了 :)

https://github.com/pallets/flask/issues/2735

【讨论】:

  • 我在 Flask 0.12.2 中遇到了同样的问题,它已经有一年多了。但是这个bug是12天前才报告的,这个问题才一周左右的时间。不可思议的巧合?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
  • 2016-02-14
  • 2015-11-15
  • 1970-01-01
  • 2020-07-26
  • 2015-04-27
相关资源
最近更新 更多