#_author:'hx'
#data:2020/12/3
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 = 'hx:'+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 = 'hx:'+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)