Flask---jsonify方式(api接口)

2024-08-31 22:18
文章标签 接口 方式 api flask jsonify

本文主要是介绍Flask---jsonify方式(api接口),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

      • GET 方法
      • post方法
      • PUT 方法
      • DELETE 方法

GET 方法

from flask import Flask, jsonify, abort, make_response
app = Flask(__name__)
articles = [{'id': 1,'title': 'the way to python','content': 'tuple, list, dict'},{'id': 2,'title': 'the way to REST','content': 'GET, POST, PUT'}
]
@app.route('/blog/api/articles', methods=['GET'])
def get_articles():""" 获取所有文章列表 """return jsonify({'articles': articles})@app.route('/blog/api/articles/<int:article_id>', methods=['GET'])
def get_article(article_id):""" 获取某篇文章 """article = filter(lambda a: a['id'] == article_id, articles)if len(article) == 0:abort(404)return jsonify({'article': article[0]})@app.errorhandler(404)
def not_found(error):return make_response(jsonify({'error': 'Not found'}), 404)
if __name__ == '__main__':app.run(host='127.0.0.1', port=5632, debug=True)

http://127.0.0.1:5632/blog/api/articles输出如下:

{"articles": [{"content": "tuple, list, dict", "id": 1, "title": "the way to python"}, {"content": "GET, POST, PUT", "id": 2, "title": "the way to REST"}]
}

http://localhost:5632/blog/api/articles/2输出如下:

{"article": {"content": "GET, POST, PUT", "id": 2, "title": "the way to REST"}
}

当返回404错误时候,输出

{"error": "Not found"
}

post方法

from flask import request
from flask import Flask, jsonify, abort, make_responseapp = Flask(__name__)@app.route('/blog/api/articles', methods=['POST'])
def create_article():if not request.json or not 'title' in request.json:abort(400)article = {'id': 11,'title': request.json['title'],'content': request.json.get('content', '')}return jsonify({'article': article})if __name__ == '__main__':app.run(host='127.0.0.1', port=5632, debug=True)

输出如下:
这里写图片描述

PUT 方法

from flask import request
from flask import Flask, jsonify, abort, make_responseapp = Flask(__name__)articles = [{'id': 1,'title': 'the way to python','content': 'tuple, list, dict'},{'id': 2,'title': 'the way to REST','content': 'GET, POST, PUT'}
]
@app.route('/blog/api/articles/<int:article_id>', methods=['PUT'])
def update_article(article_id):article = list(filter(lambda a: a['id'] == article_id, articles))if len(article) == 0:abort(404)if not request.json:abort(400)article[0]['title'] = request.json.get('title', article[0]['title'])article[0]['content'] = request.json.get('content', article[0]['content'])return jsonify({'article': article[0]})if __name__ == '__main__':app.run(host='127.0.0.1', port=5632, debug=True)

这里写图片描述

DELETE 方法

from flask import request
from flask import Flask, jsonify, abort, make_responseapp = Flask(__name__)articles = [{'id': 1,'title': 'the way to python','content': 'tuple, list, dict'},{'id': 2,'title': 'the way to REST','content': 'GET, POST, PUT'}
]@app.route('/blog/api/articles/<int:article_id>', methods=['DELETE'])
def delete_article(article_id):article = list(filter(lambda t: t['id'] == article_id, articles))if len(article) == 0:abort(404)articles.remove(article[0])return jsonify({'result': True})if __name__ == '__main__':app.run(host='127.0.0.1', port=5632, debug=True)

这里写图片描述

这篇关于Flask---jsonify方式(api接口)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1125143

相关文章

java实现docker镜像上传到harbor仓库的方式

《java实现docker镜像上传到harbor仓库的方式》:本文主要介绍java实现docker镜像上传到harbor仓库的方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 前 言2. 编写工具类2.1 引入依赖包2.2 使用当前服务器的docker环境推送镜像2.2

springboot项目打jar制作成镜像并指定配置文件位置方式

《springboot项目打jar制作成镜像并指定配置文件位置方式》:本文主要介绍springboot项目打jar制作成镜像并指定配置文件位置方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录一、上传jar到服务器二、编写dockerfile三、新建对应配置文件所存放的数据卷目录四、将配置文

SpringBoot+Redis防止接口重复提交问题

《SpringBoot+Redis防止接口重复提交问题》:本文主要介绍SpringBoot+Redis防止接口重复提交问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录前言实现思路代码示例测试总结前言在项目的使用使用过程中,经常会出现某些操作在短时间内频繁提交。例

springboot下载接口限速功能实现

《springboot下载接口限速功能实现》通过Redis统计并发数动态调整每个用户带宽,核心逻辑为每秒读取并发送限定数据量,防止单用户占用过多资源,确保整体下载均衡且高效,本文给大家介绍spring... 目录 一、整体目标 二、涉及的主要类/方法✅ 三、核心流程图解(简化) 四、关键代码详解1️⃣ 设置

HTML5 getUserMedia API网页录音实现指南示例小结

《HTML5getUserMediaAPI网页录音实现指南示例小结》本教程将指导你如何利用这一API,结合WebAudioAPI,实现网页录音功能,从获取音频流到处理和保存录音,整个过程将逐步... 目录1. html5 getUserMedia API简介1.1 API概念与历史1.2 功能与优势1.3

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

spring中的ImportSelector接口示例详解

《spring中的ImportSelector接口示例详解》Spring的ImportSelector接口用于动态选择配置类,实现条件化和模块化配置,关键方法selectImports根据注解信息返回... 目录一、核心作用二、关键方法三、扩展功能四、使用示例五、工作原理六、应用场景七、自定义实现Impor

C++中零拷贝的多种实现方式

《C++中零拷贝的多种实现方式》本文主要介绍了C++中零拷贝的实现示例,旨在在减少数据在内存中的不必要复制,从而提高程序性能、降低内存使用并减少CPU消耗,零拷贝技术通过多种方式实现,下面就来了解一下... 目录一、C++中零拷贝技术的核心概念二、std::string_view 简介三、std::stri

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删

python判断文件是否存在常用的几种方式

《python判断文件是否存在常用的几种方式》在Python中我们在读写文件之前,首先要做的事情就是判断文件是否存在,否则很容易发生错误的情况,:本文主要介绍python判断文件是否存在常用的几种... 目录1. 使用 os.path.exists()2. 使用 os.path.isfile()3. 使用