>本教程结束了一个分为三部分的系列,以用烧瓶构建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中文网其他相关文章!