Python 如何在表单提交后调用不同的呈现

Python 如何在表单提交后调用不同的呈现,python,flask,Python,Flask,我第一次跳进烧瓶里,我在找工作时遇到了一些困难 我目前有一个模板,当我的选项卡值为空时,它包含一个表单,提交时应使用表单的参数调用特定函数并返回另一个模板。表单的每次调用实际上都应该使用不同的值调用index.html模板 守则的有关部分如下: main.py initial.html和index.html的表单部分实际上是相同的 <form class="form-inline" action="/" method="POST"> <div cla

我第一次跳进烧瓶里,我在找工作时遇到了一些困难

我目前有一个模板,当我的选项卡值为空时,它包含一个表单,提交时应使用表单的参数调用特定函数并返回另一个模板。表单的每次调用实际上都应该使用不同的值调用index.html模板

守则的有关部分如下:

main.py

initial.html和index.html的表单部分实际上是相同的

<form class="form-inline" action="/" method="POST">
              <div class="form-group">
                <input  name='url' type="text" class="form-control"/>
              </div>             
               <div class="form-group minorForm">
                <input  name='numberOfRelated' type="text" class="form-control" />
              </div>
              <div class="form-group minorForm">
                  <input  name='depth' type="text" class="form-control" />
              </div>
              <div class="form-group navbar-right">
                <button class="btn btn-success minorForm generate" type="submit"> Generate</button>
              </div> 
   </form>
在main方法中,除非值是全局的,否则不会为if not值定义它

对于您的问题,请在提交表单的条件之后添加另一个render_模板调用:

if request.method=='POST':
    url = request.form['url']
    maxDepth = request.form['depth']
    numberOfRelated = request.form['numberOfRelated']
    values = crawling(url,maxDepth,numberOfRelated)
    return render_template('index.html',var=values) # 1
return render_template('index.html',var=values) # 2

如果提交表单,则条件为true,模板将在注释1处呈现。如果用户正常导航到页面,则条件将为false,并调用带有注释2的行。

我对这个问题有点困惑,但您应该始终在帖子后重定向,除非表单中出现错误且未采取任何操作。这样,如果用户重新加载页面,相同的操作将不会重复。

谢谢,它成功了!由于请求的类型,我有另一个bug。表单['depth'],但是一个cast解决了它。
if request.method=='POST':
    url = request.form['url']
    maxDepth = request.form['depth']
    numberOfRelated = request.form['numberOfRelated']
    values = crawling(url,maxDepth,numberOfRelated)
    return render_template('index.html',var=values) # 1
return render_template('index.html',var=values) # 2