【发布时间】:2020-09-26 00:12:36
【问题描述】:
我对 Flask 完全陌生,所以我现在只是在尝试。我只是想从用户界面中读取一个句子,然后返回该句子。但是,我得到了错误:
BadRequestKeyError(key)
我的代码如下:
from flask import Flask, render_template, request, redirect
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/query', methods=['GET', 'POST'])
def do_query():
query = request.form['query']
if request.method == 'POST':
return redirect('/query')
else:
return render_template('query.html', query=query)
if __name__ == '__main__':
app.run(debug=True)
而query.html是这样的:
{% extends 'base.html' %}
{% block body%}
<form action="/query" method=”POST”>
<label> Enter your Query Sentence: </label>
<input type=”text” name=”query” id="query" >
<input type="submit" value="Submit">
</form>
<p>Here is your sentence: {{query}}</p>
{% endblock %}
我认为问题可能是查询变量未初始化,但我不知道如何修复它。谁能帮我?
【问题讨论】:
-
感谢您的回复。我现在明白了,问题确实是当方法不是“POST”时没有 request.form() 方法。但是,我仍在为实施而苦苦挣扎。他们在帖子中使用了'Post(...).save'命令。我真的不明白那里发生了什么,他们也没有将变量传递给解决方案中的html。
-
那么,当第一次加载表单时,您希望
query变量是什么?你必须简单地指定一些东西,因为没有表单提交来获取它。 -
我只想在第一次加载时显示输入行,并且只有在输入查询之后我想另外返回查询。