Flask 渲染表单值

Flask render form values

我对呈现表单结果有疑问。当我提交表格时,我想在表格下方显示术语。我做错了什么?

现在,当我提交表单时,我得到一个 200 状态代码并且没有错误消息。但是术语dosen出现在定义的地方。

# app.py

@app.route('/search')
def search():
    return render_template('search/index.html')


@app.route('/search<q>')
def results(q):
    return render_template('search/index.html', term=q)


# search/index.html

{% extends 'base.html' %}

{% block content %}
<div>
<form method="get" action="">
    <input type="text" name="q" id="">
    <input type="submit">
</form>

{{ term }}

</div>

{% endblock %}

您将路径参数(Flask 路由解析并传递给视图的路径参数)与查询参数(在 request.args 中可用)混淆了。删除您的第二条路线并更新第一条路线以访问查询。

from flask import request

@app.route('/search')
def search():
    term = request.args.get('q')
    return render_template('search.html', term=term)