接口测试学习-python第六课(登录判断后存入数据)

很多时候,一个接口的功能实现是需要前提条件的。比如推送数据需要先登录系统等。这里用一个文章发布接口来进行示例。想要通过接口发表文章,首先需要登录,要如何判断这个账号已经登录了呢。登录的账号可能有多个,总不能每次都验证不同的数据吧。这时候就可以通过登录接口存储一些登录信息,然后在文章发表接口时判断登录信息是否符合且有效,就可以判断该账号是登录状态的。这样不论登录的是哪一个账号,文章发票接口都能顺利验证。

 1 import flask,time,json
 2 from lib import tools
 3 server = flask.Flask(__name__)
 4 
 5 
 6 @server.route('/login', methods=['get'])
 7 def login():
 8     username = flask.request.values.get('username')
 9     pwd = flask.request.values.get('pwd')
10     if username == 'gyx' and pwd=='123456':
11         session_id = tools.my_md5(username+time.strftime('%Y%m%d%H%M%S'))
12         key = 'txz_session:%s'%username
13         tools.op_redis(key,session_id,3600)
14         res = {'session_id':session_id,'error_code':0,'msg':'登录成功',
15                'login_time':time.strftime('%Y%m%d%H%M%S') }
16         json_res = json.dumps(res, ensure_ascii=False)  # 返回结果弄成一个json
17         res = flask.make_response(json_res)  # 构造成一个对象
18         res.set_cookie(key, session_id, 600)
19         return res
20 
21 
22 
23 @server.route('/posts', methods=['get'])
24 def posts():
25     cookies = flask.request.cookies  # 获取到所有的cookie
26     username = ''  # 定义username和session是为了在没有传cookie的时候用的
27     session = ''
28     for key,value in cookies.items():
29         if key.startswith('txz_session'):
30             username = key
31             session = value  # 调用接口时得到的session
32     redis_session = tools.op_redis(username)  # 从redis里面获取到cookie
33     if redis_session == session:  # 判断是否登录成功
34         title = flask.request.values.get('title')  # 获取文章标题
35         content = flask.request.values.get('content')  #获取文章内容
36         article_key = 'article:%s'%title
37         tools.op_redis(article_key,content)  # 登录成功就存入文章标题和内容
38         res = {'msg':'文章发表成功', 'msg_code': 0}
39     else:
40         res = {'msg':'用户未登录','msg_code':2009}
41     return res

 

posted on 2018-05-17 16:47  四方城郭  阅读(499)  评论(0编辑  收藏  举报