zoukankan      html  css  js  c++  java
  • Python中如何开发一个登录接口和注册接口实例

    #_author:'ZYB'
    #data:2018/12/18
    import redis
    import flask
    import json
    import hashlib
    def CheckUserInRedis(username):
        ip = 'XXXXXX'
        password = 'XXXXX'
        r = redis.Redis(host=ip,password=password,port=6379,db=15,decode_responses=True)
        key = 'zyb:'+username
        if key in r.keys():
            return True,key,r.get(key)
        else:
            return False,key,r.get(key)
    def StoreInRedis(username,passwd):
        ip = 'XXXXXXX'
        password = 'XXXXXX'
        r = redis.Redis(host=ip, password=password, port=6379, db=15, decode_responses=True)
        key = 'zyb:'+username
        max = 0
        dict = {}
        for V in r.keys():
            res = json.loads(r.get(V))
            if max < res['id']:
                max = res['id']
        dict['id'] = max+1
        dict['username'] = username
        dict['passwd'] = passwd
        dict['is_admin'] = 1
        res = json.dumps(dict)
        r.set(key, res)
    def my_md5(s):
        news = str(s).encode()
        m = hashlib.md5(news)
        return m.hexdigest()
    server = flask.Flask(__name__)
    @server.route('/login',methods=['get'])
    def login():
        uname = flask.request.values.get('username')
        pd = flask.request.values.get('passwd')
        condition, key, v = CheckUserInRedis(uname)
        dict = json.loads(v)
        pwd = my_md5(pd)
        if condition:
            password = dict['passwd']
            if pwd == password:
                return '{"code":0,"msg":"恭喜%s登录!"}'%uname
            else:
                return '{"code":100,"msg":"密码错误!"}'
        else:
            return '{"code":200,"msg":"用户不存在!"}'
    @server.route('/register',methods=['get'])
    def register():
        uname = flask.request.values.get('username')
        pd = flask.request.values.get('passwd')
        cpd = flask.request.values.get('cpasswd')
        condition, key, v = CheckUserInRedis(uname)
        pwd = my_md5(pd)
        cpwd = my_md5(cpd)
        if uname and pd and cpd:
            if condition:
                return '{"code":300,"msg":"注册用户已存在!"}'
            elif pwd != cpwd:
                return '{"code":400,"msg":"两次密码不一致!"}'
            else:
                StoreInRedis(uname,pwd)
                return '{"code":0,"msg":"恭喜注册成功!"}'
        else:
            return '{"code":600,"msg":"必填参数未填,请看接口文档!"}'
    server.run(host='0.0.0.0',port=8000,debug=True)
  • 相关阅读:
    WeX5那些坑
    项目总结-微信公众平台Html5
    项目总结-APP中的HTML5
    夜幕团队成员的工资究竟几 K ?
    Docker竟然还能这么玩?商业级4G代理搭建实战!
    今天,大佬云集的夜幕团队正式成立了!
    InnoDB物理行中null值的存储的推断与验证
    探究InnoDB数据页内部行的存储方式
    DAO模式
    JDBC
  • 原文地址:https://www.cnblogs.com/arraon/p/10140713.html
Copyright © 2011-2022 走看看