• 接口开发(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)

  • 相关阅读:
    HDU ACM 1020 Encoding
    HDU ACM 1019 Least Common Multiple
    HDU ACM 1009 FatMouse' Trade
    HDU ACM 1032 The 3n + 1 problem
    HD ACM 1061 Rightmost Digit
    UVa 401 Palindromes
    UVa 489 Hangman Judge
    HDU ACM 1071 The area
    5/25
    受涼6/8
  • 原文地址:https://www.cnblogs.com/cslw5566/p/9038637.html
Copyright © 2020-2023  润新知