8.4 用户注册
用户注册的界面,和注册POST请求共用同一个视图函数,兼容POST,GET请求。
表单验证的结果数据,赋值到User模型里,可以在Base类里编写一个set_attrs函数,统一将属性拷贝赋值。动态赋值。
验证器中还应该加入业务逻辑的校验,如email不能重复,这需要自己定义验证器,以vaildate_开头
使用filter_by自定义数据库查询
数据库的密码,前端传来的是明文,需要密文加密到数据库,应该给User的password提供getter/setter函数。在set值的时候,将password加密在赋值给User的_password。
使用db.session,采用ORM方式将数据存储到数据库
如果登录成功,则重定向到登录界面
web/auth.py
@web.route('/register', methods=['GET', 'POST'])
def register():
form = RegisterForm(request.form)
if request.method == 'POST' and form.validate():
user = User()
user.set_attrs(form.data)
db.session.add(user)
db.session.commit()
return render_template('auth/register.html', form={'data': {}})models/user.py
models/base.py
forms/auth.py
Last updated
Was this helpful?