Heim >Backend-Entwicklung >Python-Tutorial >Bauen Sie erholsame APIs mit Flask: Orm unabhängig
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.
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!