测试2个关联的系统接口时,经常会遇到被测试系统或被测app的处理内部处理流程会依赖另一个系统的接口返回结果,这时,
常用的做法就是写一个模拟测试桩,用作返回请求时的结果。java可以用servicelet来实现,而python可以使用flask这个框架来实现,
并且,实现起来也比java相对简单一些。 编程语言的永远第一个示例,hello world from flask import Flask, request    #安装 flask和flask_restful 包
from flask_restful import Api, Resource app=Flask(__name__) #实例化,__name__为系统变量
api=Api(app) #restful API的固定写法
class HiWorld(Resource): #创建一个类,并继承flask_restful.Resource;定义为一个资源
def get(self):
return {'Hello':'World'} api.add_resource(HiWorld,'/Hello_World/a') #将HiWorld类作为数据资源加入到api,‘/Hello_World’为请求资源地址
if __name__=="__main__":
app.run(host='0.0.0.0',port='8585',debug=True) #host='0.0.0.0'表示开放其他机器访问权限,debug=True表示打印调试日志,port为访问端口号
                                #请求默认地址http://127.0.0.1:5000 示例二:多个请求资源
from flask import Flask
from flask_restful import Api,Resource,reqparse,abort app=Flask(__name__)
api=Api(app) todos={
'todo1':{'task':'welcome'},
'todo2':{'task':'to'},
'todo3':{'task':'school'}
} def abort_if_todo_unexist(todo_id): #请求的资源不在todos变量中,返回404
if todo_id not in todos:
abort(http_status_code=404,message="todo{}doesn't exsit".format(todo_id)) #abort提前退出请求,并返回http状态码404 parser=reqparse.RequestParser() #解析url中参数
parser.add_argument('task',type=str) #todo
class Todo(Resource):
def get(self,todo_id): #请求时get的方法,根据url中参数获取资源
abort_if_todo_unexist(todo_id)
return todos[todo_id]
def delete(self,todo_id): #请求时delete的方法,根据url中参数删除资源
abort_if_todo_unexist(todo_id)
del todos[todo_id]
return '',204
def put(self,todo_id): #请求时put的方法,根据url中参数修改资源
args=parser.parse_args()
task={'task':args['task']}
todos[todo_id]=task
return task,201 #todolist
class Todolist(Resource):
def get(self): #请求时get的方法,url没有带参数时,返回所有变量todos的值
return todos
def post(self): #请求时post的方法,url没有带参数时,新增todos[todo_id]的值
args=parser.parse_args()
todo_id=int(max(todos.keys()).lstrip('todo'))+1
todo_id='todo%i'%todo_id
todos[todo_id]={'task':args['task']}
return todos[todo_id],201 api.add_resource(Todolist,'/todos/')
api.add_resource(Todo,'/todos/<todo_id>') #<todo_id>为传入的参数 if __name__=='__main__':
app.run(host='0.0.0.0',port='8585',debug=True)
												

flask微服务框架的初步接触的更多相关文章

  1. 基于.NET CORE微服务框架 -谈谈surging API网关

    1.前言 对于最近surging更新的API 网关大家也有所关注,也收到了不少反馈提出是否能介绍下Api网关,那么我们将在此篇文章中剥析下surging的Api 网关 开源地址:https://git ...

  2. spring cloud 入门,看一个微服务框架的「五脏六腑」

    Spring Cloud 是一个基于 Spring Boot 实现的微服务框架,它包含了实现微服务架构所需的各种组件. 注:Spring Boot 简单理解就是简化 Spring 项目的搭建.配置.组 ...

  3. 从 Spring Cloud 看一个微服务框架的「五脏六腑」

    原文:https://webfe.kujiale.com/spring-could-heart/ Spring Cloud 是一个基于 Spring Boot 实现的微服务框架,它包含了实现微服务架构 ...

  4. go微服务框架go-micro深度学习(一) 整体架构介绍

    产品嘴里的一个小项目,从立项到开发上线,随着时间和需求的不断激增,会越来越复杂,变成一个大项目,如果前期项目架构没设计的不好,代码会越来越臃肿,难以维护,后期的每次产品迭代上线都会牵一发而动全身.项目 ...

  5. 微服务框架go-micro

    微服务框架go-micro https://www.cnblogs.com/li-peng/p/9558421.html 产品嘴里的一个小项目,从立项到开发上线,随着时间和需求的不断激增,会越来越复杂 ...

  6. Dubbo Ecosystem - 从微服务框架到微服务生态

    从微服务框架到微服务生态,这是微服务发展的必然趋势,也是Dubbo社区满足开发者更高效的构建微服务体系期望的使命和担当. 近期,Apache Dubbo PPMC 望陶(社区昵称:ralf0131)做 ...

  7. # go微服务框架kratos学习笔记六(kratos 服务发现 discovery)

    目录 go微服务框架kratos学习笔记六(kratos 服务发现 discovery) http api register 服务注册 fetch 获取实例 fetchs 批量获取实例 polls 批 ...

  8. 微服务框架Demo.MicroServer运行手册

    一.背景说明: 之前分享过一个微服务开发框架, "享一个集成.NET Core+Swagger+Consul+Polly+Ocelot+IdentityServer4+Exceptionle ...

  9. 推荐一款 Python 微服务框架 - Nameko

    1. 前言 大家好,我是安果! 考虑到 Python 性能及效率性,Python Web 端一直不温不火,JAVA 和 Golang 的微服务生态一直很繁荣,也被广泛用于企业级应用开发当中 ​本篇文章 ...

随机推荐

  1. java 查找类的所有子类

    package _02; import java.io.File; import java.net.URL; public class MainTest_FindAllSubClass { publi ...

  2. 创建免费的证书,实现网站HTTPS

    使用Certbot来实现HTTPS,这边也就考虑采用Cerbot来实现下 配置Certbot 证书 Certbot 的官方网站是 https://certbot.eff.org/ ,打开官网选择的 w ...

  3. RabbitMQ 消息队列 二

    一:查看MQ的用户角色 rabbitmqctl list_users 二:添加新的角色,并授予权限 rabbitmqctl add_user xiaoyao 123456 rabbitmqctl se ...

  4. scrapy相关:splash安装 A javascript rendering service 渲染

    0. splash: 美人鱼  溅,泼 1.参考 Splash使用初体验 docker在windows下的安装 https://blog.scrapinghub.com/2015/03/02/hand ...

  5. mq_receive

    NAME mq_receive - 从消息队列中获取消息 (REALTIME) SYNOPSIS #include <mqueue.h> ssize_t mq_receive(mqd_t ...

  6. python全栈开发day110-Flask基础语法

    1.Flask 初识: 短小精悍,三方支持的组件多 稳定性较差 2.三行 :启动flask服务 from flask import Flask app = Flask(__name__) app.ru ...

  7. (二)文档请求不同源之flash跨域

    对于FLash,IE是认object标签的,但是FF和Chrome是认embed标签的. 1.客户端 <param name="allowScriptAccess" valu ...

  8. 重温TCP

    先放张TCP头图片 一.TCP三次握手目的: 1.保证源主机确定目的主机在线,并可进行通信 2.让源主机检查它是否正在监听试图去连接的端口 3.允许源主机向接收者发送他的起始序列号,使得两主机可以将数 ...

  9. HTML入门2

    开始将注意力转移到具体的元素里和页面了. 在页面加载完成的时候,标签head里的内容不会显示出来,包含了页面的title和css样式以及一些元素据信息,比如作者,描述文档,下面将具体分析html文档里 ...

  10. <iframe>和<frame>区别

    1.frame不能脱离frameSet单独使用,iframe可以 2.frame不能放在body中,否则不能正常显示 frame不能和body同时使用 <!--<body>--> ...