flask - 在 FLASK 中使用 WTForms 时在两个类之间进行更改
问题描述
我正在尝试使用烧瓶创建一个简单的博客应用程序。这个应用程序有一个登录和一个注册页面。
我指定了它使用的形式如下:
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=[DataRequired(), Length(min=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('Login')
例如,当我尝试调用表单时:
<div class="form-group">
{{ form.password.label(class="form-control-label") }}
{{ form.password }}
</div>
它总是会调用 RegistrationForm 类。
我想在我的 LoginForm 中使用 ''' {{ form.remember }} '''。但是我收到错误消息:
“forms.RegistrationForm 对象”没有属性“Loginform”
我如何告诉 WTforms 在 LoginForm 中查找?
解决方案
定义路由时需要传入 login.html 页面中使用的表单。
@app.route("/login", methods=['GET', 'POST'])
def login():
form = LoginForm()
return render_template('login.html', title='Login', form=form)
推荐阅读
- python - 训练模型时出现 InvalidArgumentError
- python - 应用gensim LDA主题建模后,如何获取每个主题概率最高的文档并将它们保存在csv文件中?
- ruby-on-rails - Rails 在“ShopifyAPI::Product.delete()”上“无法验证 CSRF 令牌真实性”,但正在处理“ShopifyAPI::Product.find()”
- javascript - 如果我得到应用程序流的 Axios 响应内容类型,如何保存 PDF 格式文件?
- microprocessors - WAW 和 WAR 危害是 RISC 处理器独有的吗?
- android - 更改应用程序语言
- laravel - 如何在cpanel上上传laravel项目?
- css - 如何同时设置最小宽度并换到下一行以进行内容可编辑
- reactjs - 有没有办法重构此代码以使其更简洁?
- ruby-on-rails - 如何仅在用户按搜索时呈现搜索结果