来自 HTML 表单的 Flask 请求返回无值,我该怎么办?
Posted
技术标签:
【中文标题】来自 HTML 表单的 Flask 请求返回无值,我该怎么办?【英文标题】:Request in Flask from a Form in HTML is returning None Value, What should I Do? 【发布时间】:2019-05-26 12:20:29 【问题描述】:我在烧瓶中的请求没有任何价值。它返回 None 值。
我尝试过改变方法但没有用。
烧瓶代码:
@app.route("/login/user/book")
def searchbook():
bookname=request.form.get("search")
return render_template("message.html",heading=bookname ,message=" ")
网页:
% extends "layout.html" %
% block heading %Welcome to BookSarkar% endblock %
% block body %
<p>Welcome name </p>
<form action=" url_for('searchbook') " method="get" class="form-group">
<div class="form-group">
<input type="text" name="search" class="form-control col-md-6 mt-5 mx-auto" placeholder="Search books">
<p style="text-align:center;">
<button type ="submit" class="btn btn-primary mt-2 mx-auto">Search</button>
</p>
</div>
</form>
<div class="fixed-top m-2">
<a class="btn btn-outline-primary" href=" url_for('logout') " role="button" style="float:right;">Log out</a>
</div>
% endblock %
留言网页:
% extends "layout.html" %
% block heading % heading % endblock %
% block body %
message
<a class="btn btn-primary" href=" url_for('index') " role="button">Return to Home Page</a>
% endblock %
布局页面没有错误,因为所有其他页面都工作正常。我希望网页显示给定的输入,但它显示无
【问题讨论】:
在您的烧瓶代码中的return render_template("message.html",heading=bookname ,message=" ")
处放置一个断点并检查bookname 的值。是 None 还是已填充?
@PeterDannemann 我是新手,不知道如何调试,这就是为什么我使用 return render_template("message.html",heading=bookname ,message=" ") 来测试是否它是 None 或已填充
好吧,只要把‘print(bookname)’放在那一行之前。当你提出请求时它会打印什么?
【参考方案1】:
request.form
包含通过post
或put
提交的值,而您的表单使用get
。尝试使用request.args.get("search")
而不是request.form.get("search")
【讨论】:
以上是关于来自 HTML 表单的 Flask 请求返回无值,我该怎么办?的主要内容,如果未能解决你的问题,请参考以下文章
Python/FLASK - html 表单返回字符串。如何检查它是不是包含数字?