首页 > 解决方案 > 如何从 Flask 应用程序的 base.html 中的搜索表单提交数据?

问题描述

我想在我的导航栏中有一个搜索表单,它“包含”在我的 base.html 模板中。这意味着可以从我从 base.html 扩展的任何模板填写和提交搜索栏。结果会显示在我的索引页面上,所以一旦表单提交,表单数据应该被重定向到我的索引路由并最终传递给 index.html 模板。

我认为通过创建@app.context_processor 函数可以通过上下文处理实现这一点,但我还没有找到很多关于它的文档——尤其是使用flask。上下文处理可以用于这种事情还是更多地将全局变量返回到模板中?

如果可以,我需要做什么来设置它?任何帮助表示赞赏

标签: pythonflask

解决方案


标签中的action属性form可以定义将数据发布到搜索表单中的哪个视图。然后视图本身可以处理数据并重定向。

# base.html
<form action="{{ url_for('index') }}" method="post">
...
</form>
# view.py
@route('/', methods=['GET', 'POST']
def index():
    if request.method == 'POST':
        # handle form data here
        return render_template('index.html', form_data=data)

推荐阅读