Heim >Backend-Entwicklung >Python-Tutorial >Bauen Sie erholsame APIs mit Flask: Orm unabhängig

Bauen Sie erholsame APIs mit Flask: Orm unabhängig

William Shakespeare
William ShakespeareOriginal
2025-03-09 10:46:17961Durchsuche

Dieses Tutorial schließt eine dreiteilige Serie zum Aufbau von Rastful-APIs mit Flask ab, wodurch ein orm-agnostischer Ansatz unter Verwendung von Flask-restvoll zeigt. Im Gegensatz zu den vorherigen Raten, die sich auf SQLAlchemy stützten, wird diese Methode den Objektrelations-Mapper (ORM) abstrahiert, der Flexibilität bietet, mit einer beliebigen ORM zu arbeiten.

Die Beispielanwendung bleibt für Klarheit konsistent, obwohl sie sqlalchemy intern verwendet. Das Tutorial zeigt, wie Sie diesen Ansatz an andere Ormen anpassen können.

Abhängigkeitsinstallation

Installieren Sie zu Beginn die erforderliche Abhängigkeit:

pip install Flask-Restful

Anwendungsaufbau

Entfernen Sie den Code aus den vorherigen Tutorial -Teilen für einen sauberen Start. Die Anwendungskonfiguration wird wie folgt geändert:

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 behandelt die Formulardatenvalidierung.

testen

Tests ist identisch mit dem vorherigen Tutorial. Die Routing -URLs bleiben unverändert.

Building RESTful APIs With Flask: ORM Independent

Schlussfolgerung

Dieser letzte Teil zeigt, dass das Erstellen von orm-unabhängigen erholsamen APIs mit Flask aufgebaut wird und die Serie vervollständigt. Weitere Untersuchungen der abgedeckten Methoden werden gefördert und auf dem vorgestellten grundlegenden Wissen aufgebaut.

Dieser Beitrag enthält Beiträge von Esther Vaati, einem Softwareentwickler und Autor für Envato -Tuts.

Das obige ist der detaillierte Inhalt vonBauen Sie erholsame APIs mit Flask: Orm unabhängig. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn