从HTML表单发布值并在Flask视图中访问它们 [英] Post values from an HTML form and access them in a Flask view
本文介绍了从HTML表单发布值并在Flask视图中访问它们的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个HTML表单,发布到Flask路由。但是, request.form
是空的。如果我尝试访问其中一个值,我得到一个400错误。如何从HTML表单中发布值并在Flask中访问它们?
$ b
< form method = POST >
< input id =my_inputtype =textvalue ={{email}}>
< input id =my_submittype =submitvalue =Submit>
< / form>
@ app.route ('/ page',methods = ['POST','GET'])
def get_page():
if request.method =='POST':
print(request.form )#打印ImmutableMultiDict([])
print(request.form ['my_input'])#引发400错误
返回render_template('page.html')
解决方案您的
输入
没有< a href =https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-name =nofollow> name
属性。这就是客户端将传递给服务器的内容。如果您访问未提交的表单键,Flask将会引发400错误。 ; input name =my_inputid =my_inputtype =textvalue ={{email}}>
I have an HTML form that gets posted to a Flask route. However, request.form
is empty. If I try to access one of the values by id, I get a 400 error. How do I post values from an HTML form and access them in Flask?
<form method="POST">
<input id="my_input" type="text" value="{{ email }}">
<input id="my_submit" type="submit" value="Submit">
</form>
@app.route('/page', methods=['POST', 'GET'])
def get_page():
if request.method == 'POST':
print(request.form) # prints ImmutableMultiDict([])
print(request.form['my_input']) # raises 400 error
return render_template('page.html')
解决方案
Your input
doesn't have a name
attribute. That is what the client will pass along to the server. Flask will raise a 400 error if you access a form key that wasn't submitted.
<input name="my_input" id="my_input" type="text" value="{{ email }}">
这篇关于从HTML表单发布值并在Flask视图中访问它们的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文