- 图片验证码
uuid:前端js生成,时间戳+机器码+随机数,(image_code_id)
图片验证码:captcha生成,→name,text,image
在redis中保存图片验证码文本,(uuid,过期时间,text)
向前端返回图片验证码的图片,response = make_response(image)
- 发送短信
从redis获取真实验证码,读完之后删除,
先比较图片验证码:real_image_code.lower() != image_code.lower():
通过手机号查询数据库,看是否已注册
生成短信验证码:sms_code = '%06d' % random.randint(0, 999999)
保存短信验证码:手机号,过期时间,验证码
调用云通讯发送
- 注册
检查用户是否已注册
user = User.query.filter(User.mobile == mobile).first()
提交用户数据到数据库
db.session.add(user)
db.session.commit()
db.session.rollback()
缓存用户数据到redis中:
请求上下文中有request和session两个对象,一个负责处理http请求内容,一个负责处理用户信息。
判断用户名和密码正确(一起判断,避免反向解析)
if user is None or not user.check_password(password):
g 保存的是当前请求的全局变量,不同的请求会有不同的全局变量,通过不同的thread id区别
- 个人中心
获取图片
avatar = request.files.get('avatar')
读取成二进制
image_data = avatar.read()