当我尝试运行我的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>
答案 0 :(得分: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
标记格式不正确。