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)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • navicat15永久激活码【2021免费激活】

    (navicat15永久激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html1STL5S9V8F-eyJsaWNlbnNlSWQi…

    2022年3月27日
  • W3C网页标准_网页规范

    W3C网页标准_网页规范什么时W3C标准?网页的制作的主要标准是W3C制定的WEB技术标准,W3C:(worldwidewebconsortium)万维网联盟,万维网联盟创建于1994年,是web技术领域最具权威和影响力的国际中立性技术标准机构。WEB标准WEB标准不是某一个标准,而是一系列标准的集合。网页主要由三部分组成:结构(structure),表现(presentation)和行为(behavior)。对应的标准也分为三方面:结构化标准语言主要包7777777777777777777777777777777.

    2022年9月17日
  • Oracle数据库备份与还原

    Oracle数据库备份与还原Oracle数据库备份与还原一、逻辑备份1.某一用户(DBA权限)全库备份:2.某一用户(DBA权限)备份库中某些用户:3.某一用户备份自身:4.某一用户备份自身某些表对象:5.某一用户(具有DBA权限)备份其他用户某些表对象:二、逻辑还原1.使用全库备份文件还原:①使用全库备份文件还原库:②使用全库备份文件还原库内某些用户(被还原用户应存在):③使用全库备份文件还原库内某些用户某些表:2.使用某些用户备份文件还原:①使用某些用户备份文件还原库内某些用户(被还原用户应存在):②使用某些用户备份文件还原库内某

    2022年7月12日
  • 有没有自动生成代码的软件_源码编辑器作品展示

    有没有自动生成代码的软件_源码编辑器作品展示ACE:http://www.cnblogs.com/longboo/archive/2011/08/16/2140683.html#2187820官方网站:http://ace.ajax.org/https://github.com/cadorn/ace-extjs#readme

    2022年8月14日
  • Calling LoadLibraryEx on ISAPI filter failed「建议收藏」

    Calling LoadLibraryEx on ISAPI filter failed「建议收藏」今天在访问IIS下的站点时莫名奇妙的遇到这个问题CallingLoadLibraryExonISAPIfilter“C://。。。” failed,前面引号中的“C://。。。”是加载的DLL的路径。打开IIS管理器点击web站点名称,点击ISAPI筛选器会在列表中看到前面错误中提到的那个不能加载的DLL的名称和执行路径,把它删掉即可。

    2022年10月31日
  • PHP函数microtime()

    定义和用法PHP函数microtime()返回当前Unix时间戳和微秒数。PHP函数microtime()语法microtime(get_as_float)PHP函数microtime()参数与描

    2021年12月20日

发表回复

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

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