每一个接口的服务都是独立的,不像函数,可以相互调用;接口必须通过第三方工具进行关联;
import flask,time,json from lib import tools 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 == 'zr' and pwd=='123456': session_id = tools.my_md5(username+time.strftime('%Y%m%d%H%M%S')) key = 'txz_session:%s'%username tools.op_redis(key,session_id,600) 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)#返回结果弄成json res = flask.make_response(json_res) #构造成返回结果的对象 res.set_cookie(key,session_id,3600) #最后的数字是cookie的失效时间。如果不加这句不会向浏览器中写cookies return res @server.route('/posts') def posts(): cookies = flask.request.cookies #所有的cokies username = '' # session = ''#定义这两个变量是为了,在没有传cookie的时候用的。 for key,value in cookies.items(): if key.startswith('txz_session'): #判断cookie以txz_session开头的话,取到它 username = key session = value #调用接口的时候用户传过的seesion,从cookie里面取过来的 redis_session = tools.op_redis(username) #从redis里面获取到的的cookie if redis_session == session: #判断传过来的seeion和redis里面的session一样 title = flask.request.values.get('title')#获取文章标题 conent = flask.request.values.get('content')#获取文章内容 article_key ='article:%s'%title #key都以article开头 tools.op_redis(article_key,conent) #把文章写入redis res = {'msg':'文章发表成功!','code':0} else: res = {'msg':'用户未登录!','code':2009} return json.dumps(res,ensure_ascii=False)