接口测试学习-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