Сама ошибка:
werkzeug.exceptions.BadRequestKeyError: 400 Bad Request: The browser (or proxy) sent a request that this server could not understand.
KeyError: 'name'
Попытался накидать по примеру аналогичный код.
main.py:
from flask import Flask, redirect, url_for, request
app = Flask(__name__)
@app.route('/success/<username>')
def successfully_signed_in(username):
return 'welcome, %s' % username
@app.route('/login',methods = ['POST', 'GET'])
def sing_in():
if request.method == 'POST':
user = request.form['name']
return redirect(url_for('successfully_signed_in', username = user))
else:
user = request.args.get('name')
return redirect(url_for('successfully_signed_in', username = user))
if __name__ == '__main__':
app.run(debug = True)
login.html :
<html>
<body>
<form action = "/login" method = "post">
<p>Enter Name:</p>
<p><input type = "text" name = "name" /></p>
<p><input type = "submit" value = "submit" /></p>
</form>
</body>
</html>
В изначальном примере атрибут name = "nm"
, но если я меняю его на какое-либо другое имя,
то получаю эту ошибку, при том что и в html
и в python
коде эти имена совпадают,
как видно в примере приведенного мною кода в обоих местах это name
.
Если меняю на nm
, то все работает.
Вопрос первый - почему вызвано такое поведение?
Вопрос второй - почему request.form
завязоно не на самом атрибуте, а на его значении, то есть nm
, как в примере?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Отправляю запрос с кириллицей, а сервер на питоне получает другой текст: И можно ли как-нибудь сразу отправить текст с кириллицей или преобразовать...
При отправке get или post запроса и чтение его с помощью requestquery и request
Есть ребёнок и родитель, у ребёнка размеры 1610x900, у родителя высота примерно 300pxДобавил ребёнка в родителя, transform:scale(0