本教程使用的是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数据(傻瓜教程)相关推荐

  1. python股票接口_股市python接口

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 最近发现一个很有趣的事情,受到全球经济大环境的影响,周围越来越多的人开始关注股市 ...

  2. 哪些深度相机有python接口_用树莓派和YOLO打造一个深度学习照相机

    Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 亚马逊刚刚发布了一款智能摄像头DeepLens,它使用机器学习来检测物体.面部和一些活动,如弹吉他.虽然现 ...

  3. 雷电模拟器python编程接口_【Python实践】_接口模拟器

    真正的稳定,是自己不断成长,不断寻找新的空间.与其要稳定,不如开始拥抱这个变化的时代,让自己准备好. python实践 [写在前面]: 周一的时候看mock,就萌发了搭建个mock server的冲动 ...

  4. c调用python接口_通过Python自带C/C++接口实现python与c/c++相互调用

    python的底层是c/c++,因此两种语言都有相互的接口,在以前已经写过一篇c++调用python接口让opencv中的cv::Mat类型在两种语言中相互传递,ubuntu下C++与Python混编 ...

  5. python股票接口_在Python中使用股票接口

    之前已经分享了一些货币基金的接口,而近期分享1个股票的接口. 关于股票的接口主要分为2种类型: 实时的 历史的 下面我们分别来说明. 实时的 对于实时的股票,我们可以使用 http://hq.sina ...

  6. python ctp接口_原生python ctp

    [实例简介] 原生python ctp 亲测可用,提供与ctp完全一致的接口. [实例截图] [核心代码] pyctp-master(1) └── pyctp-master ├── README.md ...

  7. python运维工程师招聘_【python自动化运维工程师工资】图灵学院2020年python自动化运维工程师工资待遇-看准网...

    职位描述 招聘要求: 至少满足下面三个招聘方向中的一条. 招聘主要方向: 一.python web高级讲师 职位要求: 1.精通Python,具有python web开发经验,有参与多个完整的项目生命 ...

  8. python websocket库有什么_常用Python爬虫与Web开发库有哪些?

    Python爬虫和Web开发均是与网页相关的知识技能,无论是自己搭建的网站还是爬虫爬去别人的网站,都离不开相应的Python库,以下是常用的Python爬虫与Web开发库. **1.爬虫库** bea ...

  9. 学python编程好就业吗_自学Python编程开发靠谱吗 就业前景怎么样

    人工智能行业学习Python编程到底有多么重要,新人在学习Python的时候改如何选择,就业方向有哪些?想要了解这些,现在我们今天就来看看Python的主要开发领域以及每个岗位对应的薪资. Pytho ...

最新文章

  1. javascript计时原理
  2. java.lang.NoClassDefFoundError: org/apache/shiro/authc/AuthenticationToken
  3. IBM将发布以固态硬盘为基础的全企业系统
  4. 线性代数【9】 - 特征值和特征向量
  5. python把模块装到文件夹中_把模块有关联的放在一个文件夹中 在python2中调用文件夹名会直接失败 在python3中调用会成功,但是调用不能成功的解决方案...
  6. java多个数据库_java – 我们可以有多个dataSources到单个数据库
  7. 深入解析ES6中let和闭包
  8. map分组后取前10个_hive中分组取前N个值的实现
  9. HTTP压力测试工具wrk的安装及测试
  10. 按照软件的模板规范要求,修改了模板中的字体大小,为何展示时,字体并未发生变化?
  11. 奇迹单机版服务器修改,大天使之剑奇迹网页游戏 一键服务端单机版/架设教程/修改方法...
  12. 【推荐系统】:协同过滤和基于内容过滤概述
  13. 共享店铺靠谱么?共享店铺哪家好?全方位测评企雀共享店铺,黑谷共享店铺!
  14. R语言,直方图的制作--hist()
  15. Laravel+layui后台开发框架
  16. ScriptManager.RegisterStartupScript()方法
  17. linux awk命令详解(一) awk语法 awk运算 awk数组
  18. vue父子组件及非父子组件之间的传值
  19. Windows 消息机制浅析
  20. IP网络电话技术与IP可视对讲技术的比较

热门文章

  1. 【JavaScript总结】JavaScript语法基础:BOM
  2. PyCharm_10个加速省时间技巧
  3. Pytorch系列教程-使用Seq2Seq网络和注意力机制进行机器翻译
  4. LeetCode简单题之交替位二进制数
  5. 你了解计算机系统的层次结构吗?计算机语言怎么发展的?
  6. 边缘网联与5G等服务器
  7. AIFramework框架Jittor特性(上)
  8. nvJPEG Codec库
  9. 用Auto-TensorCore代码生成优化matmul
  10. 每秒能捕捉万亿帧的相机