(BadRequestKeyError) 不知道是哪里的问题
(BadRequestKeyError) Don't know where the problem is
我正在尝试创建一个注册页面,页面上有两个密码字段,一个用于密码本身,第二个用于确认密码(当然还有用户名):
HTML:
<div class="fields">
<input id="usr" type="text" name="username" placeholder="Username" required>
<input id="pass" type="password" name="password" placeholder="Password" required>
<input id="confirmpass" type="password" name="confirm_password" placeholder="Confirm password" required>
</div>
我知道错误是什么意思,它是一个 KeyError
,意思是它找不到我传递给 requests.form
的密钥,这些错误的大多数情况都是拼写错误,所以我多次检查拼写,甚至复制粘贴相同的字符串。
我的问题是我不知道为什么第三个字段^ 不在 requests.form
中,也许是因为我有两种密码类型?但是我没看到哪里有说不允许的。
错误:
File ...
if request.form["confirm_password"]==request.form["password"]
File ...
raise exceptions.BadRequestKeyError(key)
werkzeug.exceptions.BadRequestKeyError: 400 Bad Request: The browser (or proxy) sent a request that this server could not understand.
错误甚至在网页加载之前出现,而不是在我提交表单时出现。
Python:
# Accounts = JSON File
@app.route("/signup",methods=["GET","POST"])
def signup():
if request.method=="GET":
if request.form["confirm_password"]==request.form["password"]: # Where the error traces back to
if request.form["username"]not in Accounts.keys():
Accounts[request.form["username"]]=Accounts["Default"]
Accounts[request.form["username"]]["Password"]=request.form["password"]
redirect(url_for("login",name=request.form["username"]))
else:return render_template(Signup,valid="Username already taken",name=request.form["username"])
else:return render_template(Signup,valid="Password confirmation does not match password",name=request.form["username"])
else:return render_template(Signup)
我的登录页面完美运行,就是这样。
您设置路线的方式表明您希望收到 POST 请求。因此,您的代码目前错误地期待 GET 请求。
快速修复是将路由的第一行更改为:
def signup():
if request.method == "POST":
# ...
我正在尝试创建一个注册页面,页面上有两个密码字段,一个用于密码本身,第二个用于确认密码(当然还有用户名):
HTML:
<div class="fields">
<input id="usr" type="text" name="username" placeholder="Username" required>
<input id="pass" type="password" name="password" placeholder="Password" required>
<input id="confirmpass" type="password" name="confirm_password" placeholder="Confirm password" required>
</div>
我知道错误是什么意思,它是一个 KeyError
,意思是它找不到我传递给 requests.form
的密钥,这些错误的大多数情况都是拼写错误,所以我多次检查拼写,甚至复制粘贴相同的字符串。
我的问题是我不知道为什么第三个字段^ 不在 requests.form
中,也许是因为我有两种密码类型?但是我没看到哪里有说不允许的。
错误:
File ...
if request.form["confirm_password"]==request.form["password"]
File ...
raise exceptions.BadRequestKeyError(key)
werkzeug.exceptions.BadRequestKeyError: 400 Bad Request: The browser (or proxy) sent a request that this server could not understand.
错误甚至在网页加载之前出现,而不是在我提交表单时出现。
Python:
# Accounts = JSON File
@app.route("/signup",methods=["GET","POST"])
def signup():
if request.method=="GET":
if request.form["confirm_password"]==request.form["password"]: # Where the error traces back to
if request.form["username"]not in Accounts.keys():
Accounts[request.form["username"]]=Accounts["Default"]
Accounts[request.form["username"]]["Password"]=request.form["password"]
redirect(url_for("login",name=request.form["username"]))
else:return render_template(Signup,valid="Username already taken",name=request.form["username"])
else:return render_template(Signup,valid="Password confirmation does not match password",name=request.form["username"])
else:return render_template(Signup)
我的登录页面完美运行,就是这样。
您设置路线的方式表明您希望收到 POST 请求。因此,您的代码目前错误地期待 GET 请求。
快速修复是将路由的第一行更改为:
def signup():
if request.method == "POST":
# ...