Python烧瓶,注册页面验证问题

时间:2019-12-05 22:04:56

标签: python flask

我正在尝试为我的网站创建一个登录系统。如果用户使用现有帐户创建帐户,数据库将崩溃并发生错误。我的问题是我不知道如何做到这一点,以便它检查该用户名是否已被使用,如果该名称已被使用,则会闪烁一条错误消息。

我不确定在if newUser:之后要添加什么,我是Flask / Python的新手,所以任何帮助都将大有帮助。

谢谢。

@app.route('/signup', methods=['GET', 'POST'])
def signup():
    form = SignupForm()
    if form.validate_on_submit():
        hashed_password = generate_password_hash(form.password.data, method='sha256')

        db.session.add(newUser)
        db.session.commit()

        return render_template('index..html')

    return render_template('signup.html', form=form)

1 个答案:

答案 0 :(得分:1)

您需要在创建新用户之前查询数据库:

@app.route('/signup', methods=['GET', 'POST'])
def signup():
    form = SignupForm()
    if form.validate_on_submit():
        hashed_password = generate_password_hash(form.password.data, method='sha256')

        user = db.session.query(User).filter_by(username=form.username.data).scalar()
        if user:
            flash('Please choose another username')
        else:
            newUser = User(username=form.username.data)
            db.session.add(newUser)
        db.session.commit()


        return render_template('index.html')

     return render_template('signup.html', form=form)

查看代码中的这一行:

user = db.session.query(User).filter_by(username=form.username.data).scalar()