Maison >développement back-end >Tutoriel Python >Bâtiment des API RESTfuls avec flacon: ORM indépendant
Ce tutoriel conclut une série en trois parties sur la construction d'API RESTful avec Flask, démontrant une approche ORM-Agnostique à l'aide de flacon. Contrairement aux versements précédents qui reposaient sur Sqlalchemy, cette méthode résume le mappeur relationnel d'objet (ORM), offrant une flexibilité pour travailler avec n'importe quel orm.
L'exemple de l'application reste cohérent pour plus de clarté, bien qu'il utilise sqlalchemy en interne. Le tutoriel présente comment adapter cette approche à d'autres orms.
Installation de dépendance
pour commencer, installez la dépendance nécessaire:
pip install Flask-Restful
Configuration de l'application
Supprimez tout code des pièces du didacticiel précédentes pour un démarrage propre. La configuration de l'application est modifiée comme suit:
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
gère la validation des données du formulaire.
Test
Le test est identique au tutoriel précédent. Les URL de routage restent inchangées.
Conclusion
Cette dernière partie démontre la construction d'API RESTful indépendante de l'ORM avec Flask, terminant la série. Une exploration plus approfondie des méthodes couvertes est encouragée, en s'appuyant sur les connaissances fondamentales présentées.
Ce message comprend des contributions d'Esther Vaati, développeur de logiciels et écrivain pour Envato TUTS.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!