python的flask实现接口_使用python的Flask实现一个接口mock数据(傻瓜教程)
本教程使用的是python3 因为python2官方已经不维护了,当然在编写过程中没什么区别,安装就比较简单了只要电脑有pip执行pip3 install flask即可
一般的接口包括增删改查以及查看列表五个接口
接下来就模拟这五个简单的接口:
使用POST/GET请求新建一个资源
fromflask import Flask, jsonify, request, abort, make_response
app=Flask(__name__)
@app.route('/api/tasks/', methods=['GET', 'POST'])
def create_task():if request.method == "GET":return make_response(jsonify(data), 200)
name= request.json['name']if name innames:return make_response(task_exist, 400)else:
names.append(name)
data.append(request.json)return make_response(request.json, 201)if __name__ == '__main__':
app.run(host='127.0.0.1', port=8080, debug=True)
如上述代码,在main函数里可以通过app.run指定部分参数,host和port不做赘述,debug模式如果开启则在修改后可以自动重启服务。非常好用
知识点:
1. jsonify:将我们传入的json形式数据序列化成为json字符串,作为响应的body,并且设置响应的Content-Type为application/json,构造出响应返回至客户端
2. request可以通过request.json取到接受到数据
3. abort用于返回通用的错误比如:404,400,500
4.make_response自定义返回的object,因为一般接口都会返回一个数据和状态码,所以结构为make_response(request.json, 201)
5.路由匹配的规则
1. :默认接受的类型是str
2. :指定id的类型为str
3. :指定的id类型是整性
4. : 指定id的类型为浮点数(四舍五入,且不能接收整数类型)
5. : 指定接收的path为url中的路径
2. 使用GET请求获取列表
from flask importFlask, jsonify, request, abort, make_response
app= Flask(__name__)
data=[
{"name": "test1", "desc": "test1", "id": 1},
{"name": "test2", "desc": "test2", "id": 2},
{"name": "test3", "desc": "test3", "id": 3},
]
task_does_not_exist= {"msg": "task does not exist"}
names= ['test1', 'test2', "test3"]
task_exist= {"msg": "name is exist"}
@app.route('/api/tasks/')defget_task(name):if len(name) > 0 and name innames:for content indata:if name == content['name']:return make_response(jsonify(content), 200)else:return make_response(jsonify(task_does_not_exist), 404)if __name__ == '__main__':
app.run(host='127.0.0.1', port=80, debug=True)
3. 使用PUT方法更新资源
@app.route('/api/tasks/', methods=['PUT'])defupdate_task(name):if len(name) > 0 and name innames:for content indata:if name == content['name']:
id= content["id"]
data[id- 1] =request.jsonreturn make_response(jsonify(data[id - 1]), 204)else:
abort(404)
4. 使用DELETE删除资源
@app.route('/api/tasks/', methods=['DELETE'])defdelete_task(name):if len(name) > 0 and name in names:return make_response(jsonify(data), 204)else:
abort(404)
python的flask实现接口_使用python的Flask实现一个接口mock数据(傻瓜教程)相关推荐
- python股票接口_股市python接口
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 最近发现一个很有趣的事情,受到全球经济大环境的影响,周围越来越多的人开始关注股市 ...
- 哪些深度相机有python接口_用树莓派和YOLO打造一个深度学习照相机
Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 亚马逊刚刚发布了一款智能摄像头DeepLens,它使用机器学习来检测物体.面部和一些活动,如弹吉他.虽然现 ...
- 雷电模拟器python编程接口_【Python实践】_接口模拟器
真正的稳定,是自己不断成长,不断寻找新的空间.与其要稳定,不如开始拥抱这个变化的时代,让自己准备好. python实践 [写在前面]: 周一的时候看mock,就萌发了搭建个mock server的冲动 ...
- c调用python接口_通过Python自带C/C++接口实现python与c/c++相互调用
python的底层是c/c++,因此两种语言都有相互的接口,在以前已经写过一篇c++调用python接口让opencv中的cv::Mat类型在两种语言中相互传递,ubuntu下C++与Python混编 ...
- python股票接口_在Python中使用股票接口
之前已经分享了一些货币基金的接口,而近期分享1个股票的接口. 关于股票的接口主要分为2种类型: 实时的 历史的 下面我们分别来说明. 实时的 对于实时的股票,我们可以使用 http://hq.sina ...
- python ctp接口_原生python ctp
[实例简介] 原生python ctp 亲测可用,提供与ctp完全一致的接口. [实例截图] [核心代码] pyctp-master(1) └── pyctp-master ├── README.md ...
- python运维工程师招聘_【python自动化运维工程师工资】图灵学院2020年python自动化运维工程师工资待遇-看准网...
职位描述 招聘要求: 至少满足下面三个招聘方向中的一条. 招聘主要方向: 一.python web高级讲师 职位要求: 1.精通Python,具有python web开发经验,有参与多个完整的项目生命 ...
- python websocket库有什么_常用Python爬虫与Web开发库有哪些?
Python爬虫和Web开发均是与网页相关的知识技能,无论是自己搭建的网站还是爬虫爬去别人的网站,都离不开相应的Python库,以下是常用的Python爬虫与Web开发库. **1.爬虫库** bea ...
- 学python编程好就业吗_自学Python编程开发靠谱吗 就业前景怎么样
人工智能行业学习Python编程到底有多么重要,新人在学习Python的时候改如何选择,就业方向有哪些?想要了解这些,现在我们今天就来看看Python的主要开发领域以及每个岗位对应的薪资. Pytho ...
最新文章
- javascript计时原理
- java.lang.NoClassDefFoundError: org/apache/shiro/authc/AuthenticationToken
- IBM将发布以固态硬盘为基础的全企业系统
- 线性代数【9】 - 特征值和特征向量
- python把模块装到文件夹中_把模块有关联的放在一个文件夹中 在python2中调用文件夹名会直接失败 在python3中调用会成功,但是调用不能成功的解决方案...
- java多个数据库_java – 我们可以有多个dataSources到单个数据库
- 深入解析ES6中let和闭包
- map分组后取前10个_hive中分组取前N个值的实现
- HTTP压力测试工具wrk的安装及测试
- 按照软件的模板规范要求,修改了模板中的字体大小,为何展示时,字体并未发生变化?
- 奇迹单机版服务器修改,大天使之剑奇迹网页游戏 一键服务端单机版/架设教程/修改方法...
- 【推荐系统】:协同过滤和基于内容过滤概述
- 共享店铺靠谱么?共享店铺哪家好?全方位测评企雀共享店铺,黑谷共享店铺!
- R语言,直方图的制作--hist()
- Laravel+layui后台开发框架
- ScriptManager.RegisterStartupScript()方法
- linux awk命令详解(一) awk语法 awk运算 awk数组
- vue父子组件及非父子组件之间的传值
- Windows 消息机制浅析
- IP网络电话技术与IP可视对讲技术的比较