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 测试需求, ...
随机推荐
- Laravel路由除了根目录全报404错误
Route::get('hello',function(){ return 'Hello World!'; }); 在laravel/app/Http/routes.php下添加上面的语句,然后再浏览 ...
- Currency Exchange 货币兑换 Bellman-Ford SPFA 判正权回路
Description Several currency exchange points are working in our city. Let us suppose that each point ...
- 第二阶段每日站立会议Third Day
昨天对图片显示的大小进行调整 今天对于程序中的字体显示进行细化修改,使界面更美观 遇到的问题:当图片太小时,显示一块灰色区域,不美观
- 软工实践-Beta 冲刺 (3/7)
队名:起床一起肝活队 组长博客:博客链接 作业博客:班级博客本次作业的链接 组员情况 组员1(队长):白晨曦 过去两天完成了哪些任务 描述: 1.界面的修改与完善 展示GitHub当日代码/文档签入记 ...
- visualStudo编译c程序, 提示函数unSafe问题
问题描述: 在利用visualStudo进行C语言编程时,若C语言源程序中有print,freopen等函数时,IDE软件总是unSafe,而且无法通过编译. 解决方案: 在<视图>中找到 ...
- vue 如何使用scss (转载)
创建一个基于 webpack 模板的新项目 全局安装 vue-cli $ npm install --global vue-cli 创建一个基于 webpack 模板的新项目 $ vue init w ...
- canvas制作原生的百分比圆形比例等
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- 移动端 H5 弹出层 fixed 内容可滚动
<div class="alert_wapper"> <div class="wapper"> <!--内容 --> < ...
- vmware 已将该虚拟机配置为使用 64 位客户机操作系统。但是,无法执行 64 位操作。
错误提示:已将该虚拟机配置为使用 64 位客户机操作系统.但是,无法执行 64 位操作. 此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态. 如果已在 BIOS/固件设置中禁用 ...
- Augmenting DOM Storage with IE's userData behavior
http://www.javascriptkit.com/javatutors/domstorage2.shtml Augmenting DOM Storage with IE's userData ...