Python flask实战订餐系统微信小程序-33通过数据库查询完善注册登录接口

B站配套视频教程观看
通过数据库查询完善注册登录接口通过数据库查询完善注册登录接口

from common.models.member.Member import Member
from common.models.member.OauthMemberBind import OauthMemberBind
from common.libs.Helper import getCurrentDate

@route_api.route( "/member/login", methods = ['GET', 'POST'] )
def login():
    resp = {'code':200,'msg':'操作成功', 'data':{}}
    req = request.values
    #app.logger.info(req)

    code = req['code'] if 'code' in req else ''
    if not code or len(code)<1:
        resp['code'] = -1
        resp['msg'] = '需要code'
        return jsonify(resp)

    url = 'https://api.weixin.qq.com/sns/jscode2session?appid={0}&secret={1}&js_code={2}&grant_type=authorization_code'\
        .format(app.config['MINA_APP']['appid'],app.config['MINA_APP']['appkey'],code)

    r = requests.get(url)
    res = json.loads(r.text)
    openid =  res['openid']
    '''
    判断是否已经注册过,已注册直接返回信息
    '''
    bind_info = OauthMemberBind.query.filter_by(openid=openid,type=1).first()
    if not bind_info:
        nickname = req['nickname'] if 'nickname' in req else ''
        sex = req['gender'] if 'gender' in req else ''
        avatar = req['avatarUrl'] if 'avatarUrl' in req else ''

        model_name = Member()
        model_name.nickname = nickname
        model_name.sex = sex
        model_name.avatar = avatar
        model_name.salt = ''
        model_name.updated_time = model_name.created_time = getCurrentDate()
        db.session.add(model_name)
        db.session.commit()

        model_bind = OauthMemberBind()
        model_bind.member_id = model_name.id
        model_bind.type = 1
        model_bind.openid = openid
        model_bind.extra = ''
        model_bind.updated_time = model_bind.created_time = getCurrentDate()
        db.session.add(model_bind)
        db.session.commit()

        bind_info = model_bind

    member_info = Member.query.filter_by(id = bind_info.member_id).first()
    resp['data'] = {'nickname':member_info.nickname}
    app.logger.info(member_info.nickname)

    return jsonify(resp)		
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虚坏叔叔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值