首页 > 后端开发 > Python教程 > 用烧瓶构建静止的API:ORM独立

用烧瓶构建静止的API:ORM独立

William Shakespeare
发布: 2025-03-09 10:46:17
原创
959 人浏览过

>本教程结束了一个分为三部分的系列,以用烧瓶构建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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板