Flask—jsonify方式(api接口)「建议收藏」

Flask—jsonify方式(api接口)「建议收藏」GET方法post方法PUT方法DELETE方法GET方法fromflaskimportFlask,jsonify,abort,make_responseapp=Flask(__name__)articles=[{‘id’:1,’title’:’thewaytopyt…

大家好,又见面了,我是你们的朋友全栈君。

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_response

app = 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_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/<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_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/<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)

这里写图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/142568.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月10日 下午2:20
下一篇 2022年5月10日 下午2:40


相关推荐

  • 用C语言进行Windows编程入门

    用C语言进行Windows编程入门用C语言进行Windows编程入门本文对一般教程或网上有的(如C语言语法等基础)不深入介绍,对初学者易造成疑惑误解或难以找到的内容进行较详尽的介绍。学习C语言很久了,一直面对控制台应用程序(Win32ConsoleApplication),没有漂亮的界面,是不是不爽呀。用C开发图形界面程序,有多种技术方案,本文希望用简单的例子,深入浅出的介绍一种方案——用C和SDK进行图形界面编程。…

    2022年6月18日
    26
  • 股票实盘交易接口API(招商证券交易接口api)

    股票配资系统实盘交易接口怎么做有没有好用的实盘交易接口股票实盘交易接口做股票配资系统难免会用到交易接口,好用的能用的接口也少。券商那边也不提供,那索性自己开发股票配资实盘交易接口了。经过多次尝试,总算搞出来了,实时交易接口可以获取用户数据,实时对接,账户信息,委托买入卖出,支持多家券商。我们做股票配资系统的时候遇到过很多次交易接口问题,然后后面终于是解决了,现在我们的股票配资系统已经很完善…

    2022年4月15日
    581
  • 【转载】.NET Remoting学习笔记(二)激活方式

    【转载】.NET Remoting学习笔记(二)激活方式

    2021年11月18日
    92
  • vue的实现原理怎么回答_变压吸附的原理

    vue的实现原理怎么回答_变压吸附的原理一、Vue对比其他框架原理Vue相对于React,Angular更加综合一点。AngularJS则使用了“脏值检测”。React则采用避免直接操作DOM的虚拟dom树。而Vue则采用的是&#160

    2022年8月3日
    13
  • 给你的PyCharm添加解释器

    给你的PyCharm添加解释器PyCharm 版本 PyCharm2020 2 很多同学在安装完 PyCharm 后 发现 PyCharm 并没有指定解释器 这样的代码就无法得到运行 此时我们需要手动添加解释器 进入添加解释器的有以下几种方法 1 右下角 解释器 gt 添加解释器 直接进入到添加 Python 解释器窗口 2 文件 gt 设置 gt 项目 gt Python 解释器 点击右侧设置按钮 选择添加 可进入到添加 Python 解释器窗口 添加 Python 解释器到达 Pytho

    2026年3月27日
    10
  • C# ZIP文件的压缩和解压缩(SharpZipLib.dll)

    C# ZIP文件的压缩和解压缩(SharpZipLib.dll)真是折腾呀,网上虽然有不少的源码但测试几个就是不成功,经过折腾还是折腾出来了现在分享出来给大家。源码还是在网友们的基础上调整的,主要是调整源码大大小写格式。sharpziplib.dll下载:http://pan.baidu.com/share/link?shareid=1016448925&uk=134565274&fid=3214033513首先需要在项目里引用sharp

    2022年7月26日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号