2016-06-11 256 views
-2

当我尝试运行我的Flask项目时,我不断收到400错误请求。400错误请求(Flask + html)

我必须使用Flask和HTML做一个项目,它应该是一个组项目,所以成员必须学习它的不同部分才能收集所有内容。可悲的是,我的 '组' 并没有做到在所有

这东西是我的代码:

app = Flask(__name__, static_url_path="") 


@app.route('/', methods=['POST','GET' ]) #1 - Login e criar conta 

def PagInicio(): 
    button = request.form["button"] 
    if request.method == 'POST': 
     if button == "login": 
      return render_template("Princ.html") 
     elif button =="criar": 
      return render_template("Criar.html") 
     else: 
      return render_template("Inicio.html") 

    return render_template("Inicio.html") 

HTML:

<div class="col_12"> 
    </div> 

    <!-- Tab 3 - Perfil --> 
    <div id="tabr3" class="tab-content"> 
     <div class="grid"> 

      <div class="col_2"></div> 
      <div class="col_8"> 
       <form class="vertical" method="POST" action="/"> 
       <fieldset> 


        <div class="grid"> 


         <div class="col_6"> 
         <label for="usuario">Usuário</label> 
         <input id="usuario" name="usuario" type="text" /> 
         </div> 

         <div class="col_6"> 
         <label for="senha">Senha</label> 
         <input id="senha" name="senha" type="password" /> 
         </div> 

         <div class="col_12 center"> 
         <button class="medium" value="login"</i> Login</button> 
         </div>    

            <div class="col_12 center"> 
            <button class="medium" value="criar"</i> Criar</button> 
            </div> 

       </form> 
      </div> 
      <div class="col_2"></div> 
     </div> 
    </div> 

</div> 
<div class="col_1"></div> 
</div> 
+0

你的问题是什么? –

+0

我刚刚创建了这个帐户,我不知道我是否应该简化我的解释 – naumpossoesquecer

+0

好吧,我的代码应该是一个应用程序...我只是想整合烧瓶与HTML,但错误“400坏请求“不断发生。我不知道我该怎么做才能做到这一点 – naumpossoesquecer

回答

2

您试图访问request.form词典,总是

button = request.form["button"] 

如果表单中没有这样的值,则会抛出400响应错误。这是总是如果您有GET请求,则request.form仅在有效格式为POST数据时填充。

只有尝试访问该按钮时,你已经确定你有一个POST要求:

def PagInicio(): 
    if request.method == 'POST': 
     button = request.form["button"] 
     if button == "login": 
      return render_template("Princ.html") 
     elif button =="criar": 
      return render_template("Criar.html") 
     else: 
      return render_template("Inicio.html") 

    return render_template("Inicio.html") 

接下来,你实际上并没有一个名为button任何形式的元素。您有button表单元素但没有名称。给所有的按钮一样name属性,不同属性的值:

<div class="col_12 center"> 
<button class="medium" name="button" value="login"> Login</button> 
</div>    

<div class="col_12 center"> 
<button class="medium" name="button" value="criar"> Criar</button> 
</div> 

请注意,您的格式不正确标签<button过。