首頁 > 後端開發 > Python教學 > 用燒瓶構建靜止的API:ORM獨立

用燒瓶構建靜止的API:ORM獨立

William Shakespeare
發布: 2025-03-09 10:46:17
原創
957 人瀏覽過

>本教程結束了一個分為三部分的系列,以用燒瓶構建Restful API,展示了使用燒瓶式的ORM-AGNOSTIC方法。 與以前依賴SQLalchemy的分期付款不同,此方法摘要對象鍵合映射器(ORM),提供了與任何ORM一起工作的靈活性。 >

示例應用程序在內部使用sqlalchemy,但仍保持一致。 教程展示瞭如何使這種方法適應其他ORMS。

>

依賴項安裝

開始,安裝必要的依賴性:

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

結論

>最終部分展示了用燒瓶構建獨立於ORM的REST-API,完成了該系列。 鼓勵對所涵蓋方法的進一步探索,基於提出的基本知識。

這篇文章包括Esther Vaati的貢獻,Esther Vaati是Envato Tuts的軟件開發人員和作者。

以上是用燒瓶構建靜止的API:ORM獨立的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板