我正在学习一个名为python的网络编程主题。我们学会了使用Web框架烧瓶。我正在研究该主题的项目,并且已经使用flask创建了一个应用程序。我已经制作了一个注册表单和登录表单,可以使用SqlAlchemy来创建数据库。现在,我不知道的是,当我创建用户,使用updateform登录并更改其密码时,我似乎找不到能够登录的方法。
我认为解决方案是对密码进行哈希处理,因为我的登录表单会搜索经过哈希处理的密码,而我的更新视图不会创建一个。所以我的问题是如何在user_change视图中创建哈希密码?
抱歉这个愚蠢的问题,但是我对此很陌生,似乎迷路了。
答案 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&