我正在编写一个使用Flask作为后端框架管理表单的应用程序。
当我正确填写表单(用户名和密码)中的数据时,而不是返回'Form sucessfully submitted'
的程序,我收到以下错误:
未找到
在服务器上找不到请求的网址。如果您手动输入了网址,请检查您的拼写,然后重试。
为什么会这样?
注意1:我在模板目录中放置了一个HTML文件,因此不会导致错误
注意事项2:我在这里只写了与此问题相关的代码
以下是代码:
1)application.py
from flask import Flask, render_template, redirect, url_for
from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField
from wtforms.validators import InputRequired, Email, Length, AnyOf
from flask_bootstrap import Bootstrap
app = Flask(__name__)
Bootstrap(app)
app.config['SECRET_KEY'] = 'somePassword'
class LoginForm(FlaskForm):
username = StringField('username', validators=[InputRequired(), Email(message='I don\'t like your email.')])
password = PasswordField('password', validators=[InputRequired(), Length(min=5, max=10), AnyOf(['secret', 'password'])])
@app.route('/login', methods=['GET', 'POST'])
def login():
form = LoginForm()
if form.validate_on_submit():
return 'Form sucessfully submitted'
return render_template('loginForm1.html', form=form)
if __name__ == '__main__':
app.run(debug=True)
2)loginForm1.html
{% extends "bootstrap/base.html" %}
{% import "bootstrap/wtf.html" as wtf %}
{% block title %}
WTForms
{% endblock %}
{% block content %}
<div class="container">
<form method="POST" action="/">
<dl>
{{ wtf.quick_form(form)}}
<input type="submit" value="Login" class="btn btn-info">
</dl>
</form>
</div>
{% endblock %}
答案 0 :(得分:3)
您已将路线定义为/login
,但您的表单已过帐到/
。