接口开发(2)cookie

1.       按接口建立常见bin,lib等目录

其中interface编辑:

#sys.path.insert (手动添加)

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 == 'nhy' and pwd=='123456':

                   session_id = tools.my_md5(username+time.strftime('%Y%m%d%H%M%S'))  #服务生成响应的session 一会便于给客户端返回。

                   key = 'txz_session:%s'%username  #存放session的key

                   tools.op_redis(key,session_id,600)  #写入session到redis

                   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)  #构造成返回结果的对象  获取本地回应结果  这个方法才能set cookie

                   res.set_cookie(key,session_id,3600) #最后的数字是cookie的失效时间。*右键检查application 会有返回的cookie

                   return res

@server.route('/posts')  #发表文章接口  需要校验是否已经登录

def posts():

         cookies = flask.request.cookies  #所有的cokies 调用后会自动传入cookie

         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)

猜你喜欢

转载自www.cnblogs.com/cslw5566/p/9038637.html