Rumah >pembangunan bahagian belakang >Tutorial Python >Membina API Restful dengan Flask: Orm Bebas

Membina API Restful dengan Flask: Orm Bebas

William Shakespeare
William Shakespeareasal
2025-03-09 10:46:17961semak imbas

Tutorial ini menyimpulkan siri tiga bahagian untuk membina API yang tenang dengan kelalang, menunjukkan pendekatan Orm-agnostik menggunakan flask berehat. Tidak seperti ansuran sebelumnya yang bergantung kepada SQLalChemy, kaedah ini menafsirkan mapper objek-relasi (ORM), yang menawarkan fleksibiliti untuk bekerja dengan mana-mana Orm.

Aplikasi contoh tetap konsisten untuk kejelasan, walaupun ia menggunakan SQLalChemy secara dalaman. Tutorial mempamerkan cara menyesuaikan pendekatan ini ke orms lain.

Pemasangan Ketergantungan

untuk memulakan, pasangkan kebergantungan yang diperlukan:

pip install Flask-Restful

Persediaan Aplikasi

Keluarkan sebarang kod dari bahagian tutorial sebelumnya untuk permulaan yang bersih. Konfigurasi aplikasi diubahsuai seperti berikut:

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 Mengendalikan Pengesahan Data Borang.

Ujian

Ujian adalah sama dengan tutorial sebelumnya. URL penghalaan kekal tidak berubah.

Building RESTful APIs With Flask: ORM Independent

Kesimpulan

Bahagian akhir ini menunjukkan Bangunan API Restful ORM-bebas dengan Flask, menyelesaikan siri ini. Penjelajahan lebih lanjut mengenai kaedah yang dilindungi digalakkan, membina pengetahuan asas yang dibentangkan.

Pos ini termasuk sumbangan dari Esther Vaati, pemaju perisian dan penulis untuk Envato Tuts.

Atas ialah kandungan terperinci Membina API Restful dengan Flask: Orm Bebas. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn