ホームページ > バックエンド開発 > Python チュートリアル > Flask:Orm Independentを使用してRESTFUL APIを構築します

Flask:Orm Independentを使用してRESTFUL APIを構築します

William Shakespeare
リリース: 2025-03-09 10:46:17
オリジナル
956 人が閲覧しました

このチュートリアルは、フラスコを使用してRestful APIの構築に関する3部構成のシリーズを締めくくり、Flask-Restfulを使用したORMに依存しないアプローチを示しています。 Sqlalchemyに依存していた以前の分割払いとは異なり、この方法はオブジェクト関係マッパー(ORM)を抽象化し、任意のORMを使用する柔軟性を提供します。

サンプルアプリケーションは、内部的にはSQLalchemyを使用していますが、明確さのために一貫性があります。 このチュートリアルでは、このアプローチを他のORMに適応させる方法を紹介しています。

依存関係のインストール

開始するには、必要な依存関係をインストールしてください:

アプリケーションのセットアップ
pip install Flask-Restful
ログイン後にコピー

以前のチュートリアルパーツからコードを削除して、クリーンスタートを切ってください。 アプリケーションの構成は次のように変更されます:

flask_app/my_app/__init__.py

from flask import Flask
from flask_restful import Api

app = Flask(__name__)
api = Api(app)
ログイン後にコピー

flask_app/my_app/product/views.py

フォームデータ検証を処理します。
import json
from flask import request, Blueprint, abort
from my_app import db, app, api
from my_app.product.models import Product
from flask_restful import Resource, reqparse

catalog = Blueprint('catalog', __name__)

parser = reqparse.RequestParser()
parser.add_argument('name', type=str)
parser.add_argument('price', type=float)


@catalog.route('/')
@catalog.route('/home')
def home():
    return "Welcome to the Catalog Home."


# FLASK RESTFUL ENDPOINTS

class ProductApi(Resource):

    def get(self, id=None, page=1):
        if not id:
            products = Product.query.paginate(page, 10).items
        else:
            products = [Product.query.get(id)]
        if not products:
            abort(404)
        res = {}
        for product in products:
            res[product.id] = {
                'name': product.name,
                'price': product.price,
            }
        return json.dumps(res)

    def post(self):
        args = parser.parse_args()
        name = args['name']
        price = args['price']
        product = Product(name, price)
        db.session.add(product)
        db.session.commit()
        res = {}
        res[product.id] = {
            'name': product.name,
            'price': product.price,
        }
        return json.dumps(res)


api.add_resource(
    ProductApi,
    '/api/product',
    '/api/product/<id>',
    '/api/product/<id>/<page>'
)</page></id></id>
ログイン後にコピー

reqparseテスト

テストは、以前のチュートリアルと同じです。 ルーティングURLは変更されていません。

Building RESTful APIs With Flask: ORM Independent 結論

この最後の部分は、Flaskを使用してORMに依存しないRESTFUL APIを構築し、シリーズを完成させます。 提示された基本的な知識に基づいて、カバーされた方法のさらなる調査が奨励されます。

この投稿には、Envato Tutsのソフトウェア開発者兼ライターであるEsther Vaatiからの貢献が含まれています。

以上がFlask:Orm Independentを使用してRESTFUL APIを構築しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート