2017-10-28 177 views
0

我正在编写一个应用程序来管理使用Flask作为后端框架的表单。我找不到URL我使用Flask render_template方法

当我填写表格(用户名和密码)正确的数据,而不是程序返回'Form sucessfully submitted',我得到以下错误:

未找到

的请求的URL没有发现在服务器上。如果您手动输入网址,请检查拼写并重试。

为什么会这样呢?

注意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 %} 

回答

3

您已经定义的路由作为/login但你的形式张贴到/

+0

我现在检查了这一点,你的观察是正确的。 现在它工作。 –