【发布时间】:2021-05-11 01:51:22
【问题描述】:
我不明白如何仅在用户提交表单后在 Flask 中创建动态路由。下面的代码有效,但我只希望在提交表单后可以访问/search/<query>。使用我当前的代码,我仍然可以通过在浏览器中输入 /search/any-search-query 来访问该页面。
这是我正在做的事情:
1 - 这是表单的 POST 请求。
@app.route('/submit', methods=['POST'])
def submit():
if request.method == 'POST':
s = request.form['search']
return redirect(url_for('results', query=s))
else:
redirect(url_for('index'))
2 - 当用户提交表单时,将他们重定向到具有动态路由的新页面。
@app.route('/search/<query>', methods=['GET'])
def results(query):
return render_template("results.html")
3 - 这是我的 HTML 文件中的表单。
<form action="{{ url_for('submit') }}" method="POST">
<input type="search" id="search" name="search" placeholder="Search">
<button>Submit</button>
</form>
【问题讨论】:
-
使用 cookie 或烧瓶会话
-
@waynetech 你能举个例子吗?
标签: forms flask jinja2 flask-wtforms