Python【关联接口的开发】
import flask,time,json,hashlib,redis print("==============被调函数部分================")
def my_md5(s):
md = hashlib.md5()
md.update( s.encode() )
return md.hexdigest() def op_redis(k,v=None,time=None):
r = redis.Redis(host='127.0.0.1',password='HK139bc&*',port=6379,db=1)
if v:
r.set(k,v,time)
res = 'ok'
else:
res = r.get(k)
if res:
res = res.decode()
return res print("===========接口部分==============")
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,保存到redis数据库中
session_id = my_md5(username+time.strftime('%Y%m%d%H%M%S'))
key = 'txz_session:%s'%username
op_redis(key,session_id,600) #步骤二:构造返回给用户的数据,数据的格式为json格式的字符串
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) #步骤三:构造响应对象,把cookie放入响应对象中,同时把步骤二的Json格式字符串也放入响应对象中
res = flask.make_response(json_res)
res.set_cookie(key,session_id,3600) #最后的数字是cookie的失效时间。
return res @server.route('/posts')
def posts(): #定义两个变量
username = ''
session = '' #步骤一:从请求对象中获取所有的cookie,并进行判断
cookies = flask.request.cookies
for key,value in cookies.items():
if key.startswith('txz_session'):
username = key
session = value #步骤二:从redis里面获取到的的cookie
redis_session = op_redis(username) #步骤三:#判断传过来的seeion和redis里面的session是否一样,
#两者一样,说明用户已经登陆了,把文章信息存入redis数据库,两者不一样,则提示用户未登陆
if redis_session == session:
title = flask.request.values.get('title') #获取文章标题
conent = flask.request.values.get('content')#获取文章内容
article_key ='article:%s'%title #key都以article开头
op_redis(article_key,conent) #把文章写入redis
res = {'msg':'文章发表成功!','code':0}
else:
res = {'msg':'用户未登录!','code':2009} return json.dumps(res,ensure_ascii=False) server.run(host='127.0.0.1',port=8989,debug=True)
Python【关联接口的开发】的更多相关文章
- 《Python Web 接口开发与测试》---即将出版
为什么要出这样一本书? 首先,今年我有不少工作是跟接口自动化相关的,工作中的接口自动化颇有成效. 我一直是一个没有测试大格局的人,在各种移动测试技术爆发的这一年,我却默默耕耘着自己的一亩三分地儿(We ...
- python之接口开发基础知识
一.开发接口的作用 1.mock 服务:在别的接口没有开发完成的时候可以模拟一些接口以便测试已经开发完成的接口,例如假的支付接口,模拟支付成功.支付失败. 2.了解接口是如何实现的:数据交互.数据返回 ...
- python接口自动化(十六)--参数关联接口后传(详解)
简介 大家对前边的自动化新建任务之后,接着对这个新建任务操作了解之后,希望带小伙伴进一步巩固胜利的果实,夯实基础.因此再在沙场实例演练一下博客园的相关接口.我们用自动化发随笔之后,要想接着对这篇随笔操 ...
- python接口自动化(十四)--session关联接口(详解)
简介 上一篇cookie绕过验证码模拟登录博客园,但这只是第一步,一般登录后,还会有其它的操作,如发帖,评论等等,这时候如何保持会话呢?这里我以jenkins平台为例,给小伙伴们在沙场演练一下. se ...
- 老男孩Python高级全栈开发工程师【真正的全套完整无加密】
点击了解更多Python课程>>> 老男孩Python高级全栈开发工程师[真正的全套完整无加密] 课程大纲 老男孩python全栈,Python 全栈,Python教程,Django ...
- Python之路,Day18 - 开发一个WEB聊天来撩妹吧
Python之路,Day18 - 开发一个WEB聊天来撩妹吧 本节内容: 项目实战:开发一个WEB聊天室 功能需求: 用户可以与好友一对一聊天 可以搜索.添加某人为好友 用户可以搜索和添加群 每个 ...
- 基于python的互联网软件测试开发(自动化测试)-全集合
基于python的互联网软件测试开发(自动化测试)-全集合 1 关键字 为了便于搜索引擎收录本文,特别将本文的关键字给强调一下: python,互联网,自动化测试,测试开发,接口测试,服务测试,a ...
- python+request接口自动化框架
python+request接口自动化框架搭建 1.数据准备2.用python获取Excel文件中测试用例数据3.通过requests测试接口4.根据接口返回的code值和Excel对比 但本章只讲整 ...
- Python requests 安装与开发
Requests 是用Python语言编写HTTP客户端库,跟urllib.urllib2类似,基于 urllib,但比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求, ...
随机推荐
- 20162314 《Program Design & Data Structures》Learning Summary Of The Ninth Week
20162314 2017-2018-1 <Program Design & Data Structures>Learning Summary Of The Ninth Week ...
- spring冲刺第六天
昨天编写地图代码,完善地图界面,使其变得美观. 今天把地图界面初步完成,和其他团队成员的成果进行结合,整合人物和地图代码. 遇到的问题:在整合时遇到的问题比较多,今天没有整合成功.
- class 3 求数组中的最大值(单元测试)
1.问题引出: int Largest(int list[], int length) { int i,max; ; i < (length – ); i ++ ) { if(list[i] & ...
- 团队项目--NABCD模型
蹭课神器 N(need需求) 每个人的兴趣都不一样,或许你很喜欢自己的专业,并且想再进一步学习专业知识:或许你不是太喜欢自己的专业,想上一些自己感兴趣的课程:但是,当你想上你所钟 意的课时,却发现自己 ...
- SpringMVC(四)-- springmvc的系统学习之文件上传、ajax&json处理
资源:尚学堂 邹波 springmvc框架视频 一.文件上传 1.步骤: (1)导入jar包 commons-fileupload,commons-io (2)在springmvc的配置文件中配置解析 ...
- 很有用的高级 Git 命令
10 个很有用的高级 Git 命令 迄今,我已经使用Git很长一段时间了,考虑分享一些不管你是团队开发还是个人项目,都受用的高级git命令. 1. 输出最后一次提交的改变 这个命令,我经常使用它 来发 ...
- docker 建立私有仓库,24.205为镜像仓库所在主机
一.下载registry #yum install -y python-devel libevent-devel python-pip gcc xz-devel #python-pip install ...
- 再看select语句
select语句是整个sql中输出的最后一条语句,这条语句是在最后输出的结果集合上做计算, 这些计算都包括啥东西呢?对每个结果集合做插值计算,在做完group by和where子句之后,那么就是一个一 ...
- 惭愧, eclipse 之 build path
算下来大学到现在已近用了很久的 eclipse 了, 包括 myeclipse, 但是今天碰到的问题让我很惭愧, 一个老项目的编译都搞了好久. 环境: Myeclipse 6.X Struts 1.X ...
- 【转载】css3动画简介以及动画库animate.css的使用
原文地址:http://www.cnblogs.com/2050/p/3409129.html 在这个年代,你要是不懂一点点css3的知识,你都不好意思说你是个美工.美你妹啊,请叫我前端工程师好不好. ...