首页 > 解决方案 > 尝试通过 key 从 request.form 获取值时出现 exceptions.badrequestkeyerror(key)

问题描述

我在同一页面上有 2 个表格。为了区分它们,我使用了这样的隐藏输入:

<form action="#">
  <fieldset>
    <input type="hidden" name="formtype" value="logform">
    {{ loginForm.username() }}
    ...
  </fieldset>
</form>

<form action="#">
  <fieldset>
    <input type="hidden" name="formtype" value="regform">
    {{ registerForm.username() }}
    ...
  </fieldset>
</form>

之后,我试图通过获取隐藏的输入值来检查哪个表单发送了 POST 请求:

loginForm = LoginForm()
registerForm = RegisterForm()

if request.method == 'POST':
  if request.form["formtype"] == "regform":
    print("registration!!!!!")
  elif request.form["formtype"] == "logform":
    print("login!!")

但我收到一条错误消息:

if request.form["formtype"] == "regform":
raise exceptions.BadRequestKeyError(key)
The browser (or proxy) sent a request that this server could not understand
KeyError: 'formtype'

问题是它request.form总是空的。代码有什么问题?我该如何解决?

标签: pythonflask

解决方案


推荐阅读