【问题标题】:400 Bad Request (Flask + html)400 错误请求(Flask + html)
【发布时间】:2016-06-11 19:53:50
【问题描述】:

当我尝试运行我的 Flask 项目时,我不断收到 400 Bad Request。

我必须使用 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>

【问题讨论】:

  • 你的问题是什么?
  • 我刚刚创建了这个帐户,我不知道我是否应该简化我的解释
  • 好吧,我的代码应该是一个应用程序......我只是试图将flask与html集成,但错误“400 bad request”不断发生。我不确定我应该怎么做才能做到这一点
  • @MattiJohn:当您运行此代码并尝试访问 Flask 服务器时,您会收到 400 Bad Request 响应。而已。 OP 确实使这部分成为标题。

标签: python html flask


【解决方案1】:

您正在尝试访问request.form 字典,总是

button = request.form["button"]

如果表单中没有这样的值,则会引发400 响应错误。当您有一个GET 请求时,总是这种情况,只有当POST 数据采用有效格式时才会填充request.form

只有在您确认有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 属性,改变 value 属性:

<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>

请注意,&lt;button 标签的格式也错误。

【讨论】:

    猜你喜欢
    • 2021-04-09
    • 2014-03-18
    • 1970-01-01
    • 2019-07-24
    • 1970-01-01
    • 2022-11-28
    • 1970-01-01
    • 2016-08-25
    • 2019-12-31
    相关资源
    最近更新 更多