Flask-SqlAlchemy декларирующие модели

Это файл application.py:

db = SQLAlchemy()
migrate = Migrate()

db.app = app
db.init_app(app)
migrate.init_app(app, db)

Я обнаружил, что могу объявить модель двумя разными способами.

from application import db


class MyModel(db.Model):
    id = db.Column(db.Integer, primary_key=True)

или же

from sqlalchemy import Model, Column, Integer

class MyModel(Model):
    id = Column(Integer, primary_key=True)

Какой из них прав или что все это значит?

1 ответ

Решение

Они оба верны. Один использует колбу-sqlalchemy, другой просто использует "сырую" sqlalchemy.

Преимущества "чистой" sqlalchemy в том, что модели легче использовать за пределами колб.

Если вы не планируете использовать их вне колбы, просто придерживайтесь метода, описанного в документации на колбу, так как это сэкономит вам много времени и усилий.

Flask sqlalchemy - это просто облегченное расширение, упрощающее интеграцию sqlalchemy с флягой.

Проще говоря, он обрабатывает код соединения с базой данных, интегрированный с запросами в колбу, и добавляет некоторые удобные функции. Экземпляр, доступ Model, Column, session, engineи другие полезные классы sqlalchemy прямо из db объект

Другие вопросы по тегам