>本教程結束了一個分為三部分的系列,以用燒瓶構建Restful API,展示了使用燒瓶式的ORM-AGNOSTIC方法。 與以前依賴SQLalchemy的分期付款不同,此方法摘要對象鍵合映射器(ORM),提供了與任何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保持不變。
結論
>最終部分展示了用燒瓶構建獨立於ORM的REST-API,完成了該系列。 鼓勵對所涵蓋方法的進一步探索,基於提出的基本知識。 這篇文章包括Esther Vaati的貢獻,Esther Vaati是Envato Tuts的軟件開發人員和作者。以上是用燒瓶構建靜止的API:ORM獨立的詳細內容。更多資訊請關注PHP中文網其他相關文章!