Python【关联接口的开发】

mac2022-06-30  69

import flask,time,json,hashlib,redisprint("==============被调函数部分================")def my_md5(s): md = hashlib.md5() md.update( s.encode() ) return md.hexdigest()def op_redis(k,v=None,time=None): r = redis.Redis(host='127.0.0.1',password='HK139bc&*',port=6379,db=1) if v: r.set(k,v,time) res = 'ok' else: res = r.get(k) if res: res = res.decode() return resprint("===========接口部分==============")server = flask.Flask(__name__)@server.route('/login',methods=['get'])def login(): username = flask.request.values.get('username') pwd = flask.request.values.get('pwd') if username == 'nhy' and pwd=='123456':#步骤一:构造一个session_id,保存到redis数据库中 session_id = my_md5(username+time.strftime('%Y%m%d%H%M%S')) key = 'txz_session:%s'%username op_redis(key,session_id,600)#步骤二:构造返回给用户的数据,数据的格式为json格式的字符串 res = {'session_id':session_id,'error_code':0,'msg':'登录成功', 'login_time':time.strftime('%Y%m%d%H%M%S') } json_res = json.dumps(res,ensure_ascii=False)#步骤三:构造响应对象,把cookie放入响应对象中,同时把步骤二的Json格式字符串也放入响应对象中 res = flask.make_response(json_res) res.set_cookie(key,session_id,3600) #最后的数字是cookie的失效时间。 return res@server.route('/posts')def posts(): #定义两个变量 username = '' session = ''#步骤一:从请求对象中获取所有的cookie,并进行判断 cookies = flask.request.cookies for key,value in cookies.items(): if key.startswith('txz_session'): username = key session = value#步骤二:从redis里面获取到的的cookie redis_session = op_redis(username)#步骤三:#判断传过来的seeion和redis里面的session是否一样, #两者一样,说明用户已经登陆了,把文章信息存入redis数据库,两者不一样,则提示用户未登陆 if redis_session == session: title = flask.request.values.get('title') #获取文章标题 conent = flask.request.values.get('content')#获取文章内容 article_key ='article:%s'%title #key都以article开头 op_redis(article_key,conent) #把文章写入redis res = {'msg':'文章发表成功!','code':0} else: res = {'msg':'用户未登录!','code':2009} return json.dumps(res,ensure_ascii=False)server.run(host='127.0.0.1',port=8989,debug=True)

转载于:https://www.cnblogs.com/mtszw/p/9061522.html

最新回复(0)