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

相关文章

CSS引入方式和选择符的讲解和运用小结

《CSS引入方式和选择符的讲解和运用小结》CSS即层叠样式表,是一种用于描述网页文档(如HTML或XML)外观和格式的样式表语言,它主要用于将网页内容的呈现(外观)和结构(内容)分离,从而实现... 目录一、前言二、css 是什么三、CSS 引入方式1、行内样式2、内部样式表3、链入外部样式表四、CSS 选

PyTorch高级特性与性能优化方式

《PyTorch高级特性与性能优化方式》:本文主要介绍PyTorch高级特性与性能优化方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、自动化机制1.自动微分机制2.动态计算图二、性能优化1.内存管理2.GPU加速3.多GPU训练三、分布式训练1.分布式数据

Python文件操作与IO流的使用方式

《Python文件操作与IO流的使用方式》:本文主要介绍Python文件操作与IO流的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、python文件操作基础1. 打开文件2. 关闭文件二、文件读写操作1.www.chinasem.cn 读取文件2. 写

SpringBoot实现接口数据加解密的三种实战方案

《SpringBoot实现接口数据加解密的三种实战方案》在金融支付、用户隐私信息传输等场景中,接口数据若以明文传输,极易被中间人攻击窃取,SpringBoot提供了多种优雅的加解密实现方案,本文将从原... 目录一、为什么需要接口数据加解密?二、核心加解密算法选择1. 对称加密(AES)2. 非对称加密(R

基于Go语言实现Base62编码的三种方式以及对比分析

《基于Go语言实现Base62编码的三种方式以及对比分析》Base62编码是一种在字符编码中使用62个字符的编码方式,在计算机科学中,,Go语言是一种静态类型、编译型语言,它由Google开发并开源,... 目录一、标准库现状与解决方案1. 标准库对比表2. 解决方案完整实现代码(含边界处理)二、关键实现细

python通过curl实现访问deepseek的API

《python通过curl实现访问deepseek的API》这篇文章主要为大家详细介绍了python如何通过curl实现访问deepseek的API,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编... API申请和充值下面是deepeek的API网站https://platform.deepsee

java变量内存中存储的使用方式

《java变量内存中存储的使用方式》:本文主要介绍java变量内存中存储的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍2、变量的定义3、 变量的类型4、 变量的作用域5、 内存中的存储方式总结1、介绍在 Java 中,变量是用于存储程序中数据

重新对Java的类加载器的学习方式

《重新对Java的类加载器的学习方式》:本文主要介绍重新对Java的类加载器的学习方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、简介1.2、符号引用和直接引用1、符号引用2、直接引用3、符号转直接的过程2、加载流程3、类加载的分类3.1、显示

C++类和对象之初始化列表的使用方式

《C++类和对象之初始化列表的使用方式》:本文主要介绍C++类和对象之初始化列表的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C++初始化列表详解:性能优化与正确实践什么是初始化列表?初始化列表的三大核心作用1. 性能优化:避免不必要的赋值操作2. 强

防止SpringBoot程序崩溃的几种方式汇总

《防止SpringBoot程序崩溃的几种方式汇总》本文总结了8种防止SpringBoot程序崩溃的方法,包括全局异常处理、try-catch、断路器、资源限制、监控、优雅停机、健康检查和数据库连接池配... 目录1. 全局异常处理2. 使用 try-catch 捕获异常3. 使用断路器4. 设置最大内存和线