小编Has*_*med的帖子

FlaskForm 验证码:检查用户是否已经存在

因此,当我谈到在注册帐户时检查用户名或电子邮件是否已被使用时,我正在关注 Corey Schafer 的 Flask 教程。我一生都无法理解这段代码是如何工作的,我想这是因为我是 Python 和 Flask 的新手,但它仍然不应该如此令人困惑。

class RegistrationForm(FlaskForm):

    username = StringField('Username', validators=[DataRequired(), Length(min=4,                                  
    max=20)])
    email = StringField('Email', validators=[DataRequired(), Email()])
    password = PasswordField('Password', validators=[DataRequired()])
    password_confirm = PasswordField('Confirm password', validators=[DataRequired(),EqualTo('password')])             
    submit = SubmitField('Sign Up')


def validate_username(self, username):
    user = User.query.filter_by(username=username.data).first()
    if user:
        raise ValidationError('That username is taken. Please choose 
        another.')

def validate_email(self, email):
    user = User.query.filter_by(email=email.data).first()
    if user:
        raise ValidationError('That email is taken. Please choose another.')
Run Code Online (Sandbox Code Playgroud)

那么,我不明白的具体部分是RegistrationForm类中的两个函数:首先,这两个函数如何知道用户名和电子邮件是什么?例如,如果我将函数定义中的“用户名”和“电子邮件”参数更改为“u_n”和“e_mail”之类的内容,然后使用“u_n.data”和“e_mail.data”运行查询,则代码仍然有效. 其次,如果我要将函数重命名为其他任何内容,代码将停止工作,我不明白为什么?

我知道这个问题的答案不能太复杂,但这让我非常恼火。任何帮助将不胜感激。

python flask flask-sqlalchemy flask-wtforms

1
推荐指数
1
解决办法
3237
查看次数

标签 统计

flask ×1

flask-sqlalchemy ×1

flask-wtforms ×1

python ×1