Flask一分钟Mock一个API
如果安装了Python,并且安装了Flask:
pip install flask
那么就可以在短短一分钟内Mock出来一个API,而且只需要用到一个文件。
彻底告别在线Mock网站无法指定请求方法,Postman配置繁琐的问题。
建一个文件
随便在哪创建一个py文件,比如app.py。
写一段代码
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello_world():
return "Hello, World!"
if __name__ == "__main__":
app.run()
跑一条命令
在cmd或shell执行python app.py,服务就起来了:
D:\>python app.py
* Serving Flask app "app" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
测试一下:
D:\>curl http://127.0.0.1:5000/
Hello, World!
GET请求
不带参数
代码:
@app.route("/testGet")
def my_get():
return "This is GET"
测试:
D:\>curl http://127.0.0.1:5000/testGet
This is GET
带参数
代码:
@app.route("/testGetParams")
def my_get_params():
return request.args
测试:
D:\>curl "http://127.0.0.1:5000/testGetParams?a=1&b=2"
{"a":"1","b":"2"}
POST请求
不带参数
代码:
@app.route("/testPost", methods=["POST"])
def my_post():
return "This is POST"
测试:
D:\>curl -X POST "http://127.0.0.1:5000/testPost"
This is POST
带Json参数
代码:
@app.route("/testPostJson", methods=["POST"])
def my_post_json():
return request.json
test.json:
{
"name": "dongfanger",
"alias": "redsun"
}
测试:
D:\>curl -H "Content-Type: application/json" -d "@test.json" "http://127.0.0.1:5000/testPostJson"
{'name': 'dongfanger', 'alias': 'redsun'}
同时GET和POST
代码:
@app.route("/testGetPost", methods=["GET", "POST"])
def my_get_post():
if request.method == "GET":
return "This is GET"
if request.method == "POST":
return "This is POST"
测试:
D:\>curl http://127.0.0.1:5000/testGetPost
This is GET
D:\>curl http://127.0.0.1:5000/testGetPost -X POST
This is POST
请求头
代码:
@app.route("/testHeaders")
def my_headers():
return str(request.headers)
测试:
D:\>curl http://127.0.0.1:5000/testHeaders
Host: 127.0.0.1:5000
User-Agent: curl/7.55.1
Accept: */*
完整代码解析
from flask import Flask, request
# Flask实例
app = Flask(__name__)
# @app.route添加路由
@app.route("/testGet")
def my_get():
return "This is GET"
@app.route("/testGetParams")
def my_get_params():
# flask.request里面封装了请求数据,可以看需要获取
return request.args
# methods指定请求方法
@app.route("/testPost", methods=["POST"])
def my_post():
return "This is POST"
@app.route("/testPostJson", methods=["POST"])
def my_post_json():
return request.json
# 可以同时指定GET和POST
@app.route("/testGetPost", methods=["GET", "POST"])
def my_get_post():
# 判断请求方法是GET或POST
if request.method == "GET":
return "This is GET"
if request.method == "POST":
return "This is POST"
@app.route("/testHeaders")
def my_headers():
return str(request.headers)
if __name__ == "__main__":
app.run()
小结
本文介绍了如何使用Flask在一分钟内Mock一个API,只需要一个文件,一段代码,一条命令,即可完成。然后分别介绍了常用的GET请求和POST请求,以及带不带参数,获取请求头的用法。在测试时用到了curl命令,它的名字是Client URL的意思,在Mac和Windows都可以安装使用。
参考资料:
Flask一分钟Mock一个API的更多相关文章
- faked 一个用于 mock 后端 API 的轻量工具
一.简介 faked 是一个在前端开发中用于 mock 服务端接口的模块,轻量简单,无需要在本地启动 Server 也无需其它更多的资源,仅在浏览器中完成「请求拉截」,配合完整的「路由系统」轻而易举的 ...
- 30 分钟编写一个 Flask 应用
Flask 是一种很赞的Python web框架.它极小,简单,最棒的是它很容易学. 今天我来带你搭建你的第一个Flask web应用!和官方教程 一样,你将搭建你自己的微博客系统:Flaskr.和官 ...
- flask + Python3 实现的的API自动化测试平台---- IAPTest接口测试平台(总结感悟篇)
前言: 在前进中去发现自己的不足,在学习中去丰富自己的能力,在放弃时想想自己最初的目的,在困难面前想想怎么踏过去.在不断成长中去磨炼自己. 正文: 时间轴 flask + Python3 实现的的AP ...
- 微信小程序开发——使用mock数据模拟api请求
前言: 微信小程序开发中,后端提供了接口设计文档,前端可以先mock数据模拟api请求进行开发调试,而且可以根据需要设计mock文件的格式和内容,这样在后端接口开发完成之前,前端可以最大限度的完成前端 ...
- flask, SQLAlchemy, sqlite3 实现 RESTful API 的 todo list, 同时支持form操作
flask, SQLAlchemy, sqlite3 实现 RESTful API, 同时支持form操作. 前端与后台的交互都采用json数据格式,原生javascript实现的ajax.其技术要点 ...
- 10 分钟实现一个自己的server监控器
需求 近期须要给自己的server加入监控器.目的是监控server的内存.CPU.磁盘占用率,资源占用率过高的话能给自己发个提醒.当前主流的平台通常会提供邮件.短息.甚至会提供微信提醒,只是这类提醒 ...
- Python Flask高级编程之RESTFul API前后端分离精讲 (网盘免费分享)
Python Flask高级编程之RESTFul API前后端分离精讲 (免费分享) 点击链接或搜索QQ号直接加群获取其它资料: 链接:https://pan.baidu.com/s/12eKrJK ...
- 3分钟搭建一个网站?腾讯云Serverless开发体验
作为一个开发者,应该都能理解一个网站从开发到上线,要经过很多繁琐的步骤. 编写代码,部署应用,部署数据库,申请域名,申请SSL证书,域名备案,到最终上线起码要几天时间. 作为一个不精通代码的业务玩家, ...
- 30 分钟开发一个简单的 watchOS 2 app <oneVcat>
Apple Watch 和 watchOS 第一代产品只允许用户在 iPhone 设备上进行计算,然后将结果传输到手表上进行显示.在这个框架下,手表充当的功能在很大程度上只是手机的另一块小一些的显示器 ...
随机推荐
- 在其他程序集访问internal类
前言 本文将介绍如何在其他程序集访问internal类的方法 首先我们新建一个解决方案,其中同时新建两个类库FooALibray和FooALibray,如下: 其中FooA类代码如下: intern ...
- [源码解析] 并行分布式框架 Celery 之 Lamport 逻辑时钟 & Mingle
[源码解析] 并行分布式框架 Celery 之 Lamport 逻辑时钟 & Mingle 目录 [源码解析] 并行分布式框架 Celery 之 Lamport 逻辑时钟 & Ming ...
- java并发编程:深入了解synchronized
简介 synchronized是Java语言的关键字,可用来给对象和方法或者代码块加锁,当它锁定一个方法或者一个代码块的时候,同一时刻最多只有一个线程执行这段代码.同时它还保证了共享变量的内存可见性. ...
- 服务器开发基础-Tcp/Ip网络模型—完成端口(Completion Port)模型
本文对于初学网络编程的极为友好,文中所有代码全部基于C语言实现,文中见解仅限于作者对于完成端口的初步认识,由于作者才疏学浅,出现的错误和纰漏,麻烦您一定要指出来,咱们共同进步.谢谢!!! 完成端口(c ...
- jQ的显式迭代和隐式迭代
jQ的显示迭代 隐式迭代 let lis = document.querySelector('li') lis.forEach(function (value, index) { value.styl ...
- fail to start File System Check
fail to start File System Check 方法A: 输入root的密码 cd /etc 1 vim /etc/fstab 将所有分区最后的数字 1和2 全都改为0 reboot ...
- Linux 部署 iSCSI 客户端配置(Linux)
Linux 部署 iSCSI 客户端配置(Linux) 客户端环境 Client :RHEL8 IP : 192.168.121.11 一.测试与服务端的连通性 [root@Client-linux ...
- ./g1.sh q w e r 5个参数 bash命令 获取 命令实际的参数 shell文件名称$0 第一个参数$1第2个参数$2 最后一个参数$#;参数个数$#个;所有的参数列出来$* 返回值$? 正确0 失败1
# ./g1.sh q w e r t./g1.sh q w e r5个参数number is q w e r t[root@localhost get]# cat g1.sh#!/bin/bash# ...
- strcpy和memcpy的区别-(转自stone Jin)
strcpy和memcpy都是标准C库函数,它们有下面的特点.strcpy提供了字符串的复制.即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符. 已知strcpy函 ...
- 面试官问:ZooKeeper 有几种节点类型?别再说 4 种啦!
本文作者:HelloGitHub-老荀 好久没更新 ZK 的文章了,我想死你们啦.之前发布的 HelloZooKeeper 系列文章完结后,项目收获了将近 600 个 star.这远远超过了我自己的预 ...