Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从Flask应用程序的base.html中的搜索表单提交数据?_Python_Flask - Fatal编程技术网

Python 如何从Flask应用程序的base.html中的搜索表单提交数据?

Python 如何从Flask应用程序的base.html中的搜索表单提交数据?,python,flask,Python,Flask,我希望在导航栏中有一个搜索表单,它“包含”在我的base.html模板中。这意味着可以从扩展自base.html的任何模板中填写和提交搜索栏。结果将显示在我的索引页面上,因此一旦提交表单,表单数据应重定向到我的索引路径,并最终传递到index.html模板 我认为通过创建@app.context_处理器函数,在上下文处理中可能实现这一点,但我还没有找到很多关于它的文档,特别是使用flask。上下文处理可以用于这类事情,还是更适合于将全局变量返回到模板中 如果可以,我需要做什么来设置它?表单标记中

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

我认为通过创建@app.context_处理器函数,在上下文处理中可能实现这一点,但我还没有找到很多关于它的文档,特别是使用flask。上下文处理可以用于这类事情,还是更适合于将全局变量返回到模板中


如果可以,我需要做什么来设置它?
表单
标记中的
操作
属性可以定义将数据发布到搜索表单中的哪个视图。然后,视图本身可以处理数据并重定向

# base.html
<form action="{{ url_for('index') }}" method="post">
...
</form>

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

# base.html
<form action="{{ url_for('index') }}" method="post">
...
</form>

谢谢你,浣熊。我想我仍然需要一个上下文处理器来实例化表单,对吗?由于我没有在我的routes
render_template('base.html',form=form)
中的任何地方写入内容,我如何从基本模板访问表单对象?如果表单可用,可以在基本模板中添加条件标记来呈现表单<代码>{%if搜索表单%}{{Render搜索表单}{%endif%}。从基本模板呈现的任何模板都可以传入可选的
搜索表单
!我在routes.py中使用了before_request函数,并将flask中的g变量设置为
g.searchform=searchform()
。我按照你说的方式安排了行动。然后把每一个“表单”引用都切换到“g.searhform”。现在一切都好了!谢谢@raccoonsThanks@raccoons。我想我仍然需要一个上下文处理器来实例化表单,对吗?由于我没有在我的routes
render_template('base.html',form=form)
中的任何地方写入内容,我如何从基本模板访问表单对象?如果表单可用,可以在基本模板中添加条件标记来呈现表单<代码>{%if搜索表单%}{{Render搜索表单}{%endif%}。从基本模板呈现的任何模板都可以传入可选的
搜索表单
!我在routes.py中使用了before_request函数,并将flask中的g变量设置为
g.searchform=searchform()
。我按照你说的方式安排了行动。然后把每一个“表单”引用都切换到“g.searhform”。现在一切都好了!谢谢你,浣熊