python - 如何使用 Flask 从文本框中获取输入
问题描述
这是我想要达到的 app.route:
@app.route('/advance_search',methods=['GET','POST'])
def 高级搜索():
word=""
word = request.form['kword']
result=[]
result=getListOfKeyWord(word)
return render_template('advance_search.html',key=result)
这是我试图从主页 ( advance_search
) 访问的 HTML:
<form action="/advance_search" method="POST" class="col s12">
<div class="row center">
<a href="{{ url_for('advance_search') }}" class="btn-large waves-effect waves-light orange">Advanced</a>
</div>
</form>
这是advance_search.html
我试图达到的 HTML:
<form action='/advance_search' method="POST" enctype="multipart/form-data" >
<div class="row">
<label for="first_name"><b>Keyword</b></label>
<br>
<input id="kword" name='kword'type="text" class="btn" placeholder="type & hit Enter">
</div>
<div class="row center">
<button type="submit" class="btn-large waves-effect waves-light orange">Search</button>
</div>
<div class="row center">
{{key}}
</div>
</form>
当我尝试单击(高级)按钮以转到 `advance_search.htmln 页面时,我收到此错误:
**werkzeug.exceptions.BadRequestKeyError: 400 Bad Request: The browser (or proxy) sent a request that this server could not understand.
KeyError: 'kword'**
解决方案
您需要确保是否发出了 post 或 get 请求,然后您可以访问 request.from 键。
你的功能是:
[...]
result=[]
if request.method == "POST":
word=""
word = request.form['kword']
result=getListOfKeyWord(word)
return render_template('advance_search.html',key=result)
return render_template('advance_search.html',key=result)
request.form["kword"]
在发出发布请求之前,您无法访问。
推荐阅读
- react-native - 在水平平面列表上方垂直对齐 ListHeaderComponent
- sql - CTN 表达式和递归查询 (SQL Server) 中的列名“rn”无效
- ios - 在 iOS 上将 AVPlayer 与计时器同步
- visual-studio - 升级到 v16.10.0 后,带有 editorConfig 的 TreatWarnningsAsErrors 无法正常工作
- angularjs - angularjs 指令 - 大写
- python - 如何将自定义属性添加到 cart.py
- c# - 如何在SQL依赖c#中获取受影响的记录
- postgresql - java.lang.StackOverflowError 保存带有关联表的实体时(休眠+弹簧启动)
- python - 在 Google Colab 上的自定义数据集上微调 EfficientDet 时出现 Gather_Nd 错误
- azure-active-directory - 无法使用 AAD 应用程序运行 Get-AzRoleAssignment (Microsoft.Rest.Azure.CloudException)