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)
  • 相关阅读:
    Python排列函数:sort、sorted
    Python高阶函数:map、reduece、filter
    Python:容器、迭代对象、迭代器、生成器及yield关键字
    JPA-映射-(@OneToOne)双向一对一
    JPA-映射-(@OneToMany、@ManyToOne)双向一对多
    JPA-映射-(@OneToMany)单向一对多
    JPA-映射-(@ManyToOne)单向多对一
    JPA-EntityManager.merge()
    JPA-API
    leetcode 2.Add Two Numbers
  • 原文地址:https://www.cnblogs.com/arraon/p/10140713.html
Copyright © 2011-2022 走看看