使用哈希烧瓶应用程序更新密码表单

时间:2019-03-31 09:35:08

标签: python flask bootstrap-4 wtforms

我正在学习一个名为python的网络编程主题。我们学会了使用Web框架烧瓶。我正在研究该主题的项目,并且已经使用flask创建了一个应用程序。我已经制作了一个注册表单和登录表单,可以使用SqlAlchemy来创建数据库。现在,我不知道的是,当我创建用户,使用updateform登录并更改其密码时,我似乎找不到能够登录的方法。

我认为解决方案是对密码进行哈希处理,因为我的登录表单会搜索经过哈希处理的密码,而我的更新视图不​​会创建一个。所以我的问题是如何在user_change视图中创建哈希密码?

抱歉这个愚蠢的问题,但是我对此很陌生,似乎迷路了。

1 个答案:

答案 0 :(得分:0)

是的,您可以使用wtforms和sqlalchemy

class UpdateAccountForm(FlaskForm):
    username = StringField('Username', validators=[DataRequired(), Length(min=2,max=20)])
    email = StringField('Email', validators=[DataRequired(), Email()])
    submit = SubmitField('Update')
@app.route("/account" , methods=['GET','Post'])
@login_required #This is from flask-login extension
def account():
    form = UpdateAccountForm()
    if form.validate_on_submit():
        current_user.username = form.username.data
        current_user.email = form.email.data
        db.session.commit()
        flash('Your account has been updated')
        return redirect(url_for('account'))
    elif request.method == 'GET':
        form.username.data = current_user.username
        form.email.data = current_user.email
    return render_template('account.html', title="Account", form=form)

本教程可能对您有很大帮助https://www.youtube.com/watch?v=803Ei2Sq-Zs&