werkzeug.exceptions.BadRequestKeyError: 400 Bad Request: 浏览器(或代理)发送了一个该服务器无法理解的请求。密钥错误:'id'

yo*_*nus 3 api rest post flask

html页面

{%block title%}Login page{% endblock %}

{%block content%}
<form action = '#' method="post">
   <p>creds:</p>
   <p><input type="number"  placeholder="id"  Id="id" /></p>
   <p><input type="text"  placeholder="nm"  name="nm" /></p>
   <p><input type="submit" value="submit" /></p>
</form>
{%endblock%}
Run Code Online (Sandbox Code Playgroud)

应用代码

@app.route("/")
def home():
    return render_template("login.html")

@app.route("/",methods = ["POST","GET"])
def post():
    if request.method == "POST":
        user = request.form['nm']
        id = request.form['id']
        sql = ('''INSERT INTO abc
                (id, name) VALUES (?, ?)
                ''')
        val = (id,user)
        cur.execute (sql, val)
    return 'Ok'
Run Code Online (Sandbox Code Playgroud)

我尝试使用 return.form.get('id') 但它返回 null

任何人都可以帮我解决这个问题吗

谢谢

Swa*_*shi 8

<p><input type="number"  placeholder="id"  name="id" /></p>
Run Code Online (Sandbox Code Playgroud)

您输入的是 ID 而不是名称


小智 6

当您使用时,request.form["something"]您假设这始终是您请求的一部分,我建议您使用request.form.get("something", False)以避免该错误。我希望这能解决您的疑问。