python - Flask Python NameError:未定义名称'Flaskform'
问题描述
您好,我是 Flask 和 Python 的新手,并且在未定义 FlaskForm 时遇到了这个小问题。我的 Flask-WTF 版本应该是:Flask-WTF-0.14.3
这是我的flaskapp.py ( main )
from flask import Flask, render_template, url_for, flash, redirect
from forms import RegistrationForm, LoginForm
app = Flask(__name__)
app.config["SECRET_KEY"] = "654564ASDAD4646546545487"
posts = [
{
"author": "Corey Schafer",
"title": "Blog Post 1",
"content": "First post content",
"date_posted": "April 20, 2019",
},
{
"author": "Reboot My Computer",
"title": "Blog Post 2",
"content": "Loremipsum poasdd lorem pipsadiasdum ploremasd ipdism lrt",
"date_posted": "Unor 20, 1998",
}
]
@app.route('/')
@app.route("/home")
def home():
return render_template('home.html',posts=posts)
@app.route("/about")
def about():
return render_template('about.html', title="About")
@app.route("/register")
def register():
form = RegistrationForm()
return render_template('register.html', title="Register", form=form)
@app.route("/login")
def login():
form = LoginForm()
return render_template('register.html', title="Register", form=form)
if __name__ == "__main__":
app.run(debug=True)
这是我的forms.py:
from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, SubmitField, BooleanField
from wtforms.validators import DataRequired, Length, Email, EqualTo
class RegistrationForm(Flaskform):
username = StringField("Username",
validators=[DataRequied(), Length(ming=2, max=20)])
email = StringFIeld("Email",
validators=[DataRequired(), Email()])
password = PasswordFIeld("Password", validators=[DataRequired()])
confirm_password = PasswordFIeld("Confirm Password",
validators=[DataRequired(), EqualTo("password")])
submit = SubmitField("Sign Up")
class LoginForm(Flaskform):
email = StringFIeld("Email",
validators=[DataRequired(), Email()])
password = PasswordFIeld("Password", validators=[DataRequired()])
remember = BooleanFIeld("Remember Me")
submit = SubmitField("Sign Up")
这就是我在控制台中得到的:
class RegistrationForm(Flaskform):
NameError: name 'Flaskform' is not defined```
我不确定为什么会发生这种情况,有什么建议吗?提前感谢您的宝贵时间。
解决方案
问题是您正在导入from flask_wtf import FlaskForm
但在表单中,您使用Flaskform
的是 FlaskForm。
你forms.py
应该是这样的:
from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, SubmitField, BooleanField
from wtforms.validators import DataRequired, Length, Email, EqualTo
class RegistrationForm(FlaskForm):
username = StringField("Username",
validators=[DataRequied(), Length(ming=2, max=20)])
email = StringFIeld("Email",
validators=[DataRequired(), Email()])
password = PasswordFIeld("Password", validators=[DataRequired()])
confirm_password = PasswordFIeld("Confirm Password",
validators=[DataRequired(), EqualTo("password")])
submit = SubmitField("Sign Up")
class LoginForm(FlaskForm):
email = StringFIeld("Email",
validators=[DataRequired(), Email()])
password = PasswordFIeld("Password", validators=[DataRequired()])
remember = BooleanFIeld("Remember Me")
submit = SubmitField("Sign Up")
推荐阅读
- javascript - 如何访问并平滑地将componentWillReceiveProps中的方法和this.state转换为getDerivedStateFromProps?
- python - PyEphem:通过解析字符串表示来转换负角度的问题
- django - Gunicorn 在某些页面上将 CPU 峰值提高到 100%...杀死性能
- c# - Visual Studio 2017 未执行任何代码,也未生成任何有意义的错误
- java - 使用 Java 8 谓词的 JPA 存储库过滤器
- node.js - 找到未定义的轮值
- arrays - 将数组与数组索引匹配时,代码未在最内层循环中执行 else 条件?
- github - 如何解决“您的酒窖中有未连接的小桶”?
- bluetooth - 蓝牙支持2个耳机
- r - 在来自 R 的未来文件中设置跟踪点