1.概述
上一篇中,我们已经完成了如何使用tornado-wtforms验证数据
这里我们将继续完善此功能
- 验证数据库中是否存在此用户(通过邮箱)
- 异步peewee_async查询用户表信息
- 异步peewee_async保存数据
2.代码展示
# 调用wtforms做添加用户数据之前的数据表单验证
class AddUserHandler(RequestHandler):
async def post(self):
# 创建应该响应对象
rs_data = {}
# 接受请求的参数并封装到Form对象中
user_form = UserForm(self.request.arguments)
if user_form.validate():
# 从表单中获取email信息
email = user_form.email.data
try:
# 异步查询数据表信息
exist_user = await manager.get(UserModel,email = email)
if exist_user:
# 存在此用户,验证失败
rs_data['code'] = 500
rs_data['msg'] = '用户名已存在'
except Exception as e:
# 验证成功
# 异步保存数据到数据库中
user_form.id.data = uuid4()
await manager.create(UserModel,**user_form.data)
rs_data['code'] = 200
rs_data['msg'] = '注册成功'
else:
# 验证失败
rs_data['code'] = 500
rs_data['msg'] = '注册失败'
self.finish(rs_data)