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)
  • 相关阅读:
    KNN算法
    mysql必须知道的
    励志的演讲
    30条程序员名言警句
    别人的文章:为什么软件开发,人多,事少,还会工作量大?
    分享一个比较受启发的文章“学历代表过去,能力代表现在,学习力代表未来”
    mvc 学前必知
    启动docker容器 防火墙问题报错 ! -i docker0' failed: iptables: No chain/target/match by that name.
    git指令详解总结
    git reset 版本回退的三种用法总结
  • 原文地址:https://www.cnblogs.com/arraon/p/10140713.html
Copyright © 2011-2022 走看看