如果安装了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都可以安装使用。

参考资料:

https://flask.palletsprojects.com/en/2.0.x/quickstart/

http://www.ruanyifeng.com/blog/2019/09/curl-reference.html

Flask一分钟Mock一个API的更多相关文章

  1. faked 一个用于 mock 后端 API 的轻量工具

    一.简介 faked 是一个在前端开发中用于 mock 服务端接口的模块,轻量简单,无需要在本地启动 Server 也无需其它更多的资源,仅在浏览器中完成「请求拉截」,配合完整的「路由系统」轻而易举的 ...

  2. 30 分钟编写一个 Flask 应用

    Flask 是一种很赞的Python web框架.它极小,简单,最棒的是它很容易学. 今天我来带你搭建你的第一个Flask web应用!和官方教程 一样,你将搭建你自己的微博客系统:Flaskr.和官 ...

  3. flask + Python3 实现的的API自动化测试平台---- IAPTest接口测试平台(总结感悟篇)

    前言: 在前进中去发现自己的不足,在学习中去丰富自己的能力,在放弃时想想自己最初的目的,在困难面前想想怎么踏过去.在不断成长中去磨炼自己. 正文: 时间轴 flask + Python3 实现的的AP ...

  4. 微信小程序开发——使用mock数据模拟api请求

    前言: 微信小程序开发中,后端提供了接口设计文档,前端可以先mock数据模拟api请求进行开发调试,而且可以根据需要设计mock文件的格式和内容,这样在后端接口开发完成之前,前端可以最大限度的完成前端 ...

  5. flask, SQLAlchemy, sqlite3 实现 RESTful API 的 todo list, 同时支持form操作

    flask, SQLAlchemy, sqlite3 实现 RESTful API, 同时支持form操作. 前端与后台的交互都采用json数据格式,原生javascript实现的ajax.其技术要点 ...

  6. 10 分钟实现一个自己的server监控器

    需求 近期须要给自己的server加入监控器.目的是监控server的内存.CPU.磁盘占用率,资源占用率过高的话能给自己发个提醒.当前主流的平台通常会提供邮件.短息.甚至会提供微信提醒,只是这类提醒 ...

  7. Python Flask高级编程之RESTFul API前后端分离精讲 (网盘免费分享)

    Python Flask高级编程之RESTFul API前后端分离精讲 (免费分享)  点击链接或搜索QQ号直接加群获取其它资料: 链接:https://pan.baidu.com/s/12eKrJK ...

  8. 3分钟搭建一个网站?腾讯云Serverless开发体验

    作为一个开发者,应该都能理解一个网站从开发到上线,要经过很多繁琐的步骤. 编写代码,部署应用,部署数据库,申请域名,申请SSL证书,域名备案,到最终上线起码要几天时间. 作为一个不精通代码的业务玩家, ...

  9. 30 分钟开发一个简单的 watchOS 2 app <oneVcat>

    Apple Watch 和 watchOS 第一代产品只允许用户在 iPhone 设备上进行计算,然后将结果传输到手表上进行显示.在这个框架下,手表充当的功能在很大程度上只是手机的另一块小一些的显示器 ...

随机推荐

  1. Codeforces Beta Round #73(Div2)

    A - Chord 题意:就是环中有12个字符,给你三个字符,判断他们之间的间隔,如果第一个和第二个间隔是3并且第二个和第三个间隔是4,那么就输出minor,如果第一个和第二个间隔是4并且第二个和第三 ...

  2. font

    font属性简写 front: font-style font-variant font-weight font-size/line-height font-family 说明: 值之间空格隔开 注意 ...

  3. 1.7 Systemd初始化进程

    1.7 Systemd初始化进程 Linux操作系统的开机过程是这样的,即从BIOS开始,然后进入Boot Loader,再加载系统内核,然后内核进行初始化,最后启动初始化进程.初始化进程作为Linu ...

  4. 像素 PIXEL 图片的基本单位 像素非常小 图片是成千上万的像素组成 显示/屏幕分辨率 (DPI 屏幕分辨率)

    像素 PIXEL 图片的基本单位 像素非常小 图片是成千上万的像素组成 显示/屏幕分辨率 (DPI 屏幕分辨率) 图像分辨率 (PPI) 1920*1080是像素点长度1920个像素点 X1080个像 ...

  5. python3 ftplib模块连接FTP

    from ftplib import FTP_TLS import os import re class MyFtp(FTP_TLS): """继承FTP类"& ...

  6. Linux信号(signal) 机制分析-(转自h13)

    [摘要]本文分析了Linux内核对于信号的实现机制和应用层的相关处理.首先介绍了软中断信号的本质及信号的两种不同分类方法尤其是不可靠信号的原理.接着分析了内核对于信号的处理流程包括信号的触发/注册/执 ...

  7. mysql数据库-日志管理

    MySQL 支持丰富的日志类型 事务日志:transaction log 事务日志的写入类型为"追加",因此其操作为"顺序IO":通常也被称为:预写式日志 wr ...

  8. 拉仇恨!webhook + 企业微信给同事做了个代码提交监听工具

    本文案例收录在 https://github.com/chengxy-nds/Springboot-Notebook 大家好,我是小富~ 最近接个任务,用webhook做了个代码提交监听功能,就是有人 ...

  9. Tomcat 中文乱码

    问题描述 tomcat9启动后会有中文乱码,比如控制台乱码: startup.bat启动时乱码: 解决方法 打开"/apache-tomcat-9.0.20/conf/logging.pro ...

  10. TheSuperego 实验五 团队作业2:毕业设计选题系统

    项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/2018CST 这个作业要求链接 https://www.cnblogs.com/nwnu-dai ...