我应该选择哪个 Flask 扩展来使用 API?

Posted

技术标签:

【中文标题】我应该选择哪个 Flask 扩展来使用 API?【英文标题】:Which Flask extension should I choose to work with API's? 【发布时间】:2020-12-01 21:33:05 【问题描述】:

我尝试过使用 Flask-Restless,但我不确定,我认为它无法使用工厂模式和蓝图。

我想找到类似于 Restless(简单生成/JSON 格式)但与工厂模式和蓝图兼容的东西,您推荐我在这些要求下构建 API 的哪个 FP&BP 支持的扩展?

【问题讨论】:

【参考方案1】:

您可以使用蓝图非常简单地构建 REST API,而无需依赖任何 Flask 扩展。

这是一个无效的示例,但应该可以帮助您入门。设置一个基本的蓝图文件(假设它名为user.py):

import json
from flask import Blueprint, jsonify, request
   
bp = Blueprint('user', __name__, url_prefix='/user')

@bp.route('/', methods=['GET', 'POST'])
def user_details():
    if request.method=='GET':
         # Access elements in the JSON passed in to the call using request.json
         # Return a JSON result by passing a dictionary to jsonify
         return jsonify('result': 'ok', 'var1': 'val1')

    if request.method == 'POST':
         # Access elements in the JSON passed in to the call using request.json
         # Return a JSON result by passing a dictionary to jsonify
        return jsonify('result': 'ok')

然后像往常一样将蓝图添加到您的 Flask 服务器,例如你的__init__.py 会是这样的:

from flask import Flask
import user
app = Flask(__name__)
app.register_blueprint(user.bp)

【讨论】:

谢谢你的回答,但我实际上需要一些扩展来从数据库中抽象模型并以一种简单的方式构建保存格式 json api 1.0 或类似格式的资源。我实际上找到了一个名为 Flask_Restjsonapi 但它很密集,所以我仍在寻找类似于 Flask_restless 的扩展,它实现了一个接口(方法 get、post、put、patch 等)以通过 API RESTful 抽象和与数据模型交互。

以上是关于我应该选择哪个 Flask 扩展来使用 API?的主要内容,如果未能解决你的问题,请参考以下文章

Web 开发用哪个框架好?Flask vs. Django

Flask vs. Django ,Web 开发用哪个框架好?

flask和django的对比

实时可扩展聊天应用程序 - 我应该选择哪个数据库?

我应该为我的头像使用哪个扩展? [复制]

如何分别使用服务帐号和 API 密钥来使用 BigQuery?