SQLAlchemyProtocol
TypeSource
db: SQLAlchemyProtocol
Protocol compatible with Flask SQLAlchemy.
Flask SQLAlchemy has been maintained for many years. It has a big community and
many users, granting many available plugins that have served various applications
for long. However, it works better with SQLAlchemy<2
. For the new SQLAlchemy
package heavily dependent on the modern typing system, this old extension pacakge
may have several unsolved compatibility issues.
Note that users still have to use it if they are working with Python<3.9
because
Flask SQLAlchemy Lite is not available for the legacy Python versions.
This protocol covers most but does not include all functionalities of
flask_sqlalchemy.SQLAlchemy
.
Aliases
This type can be acquired by
import flask_sqlalchemy_compat as fsc
fsc.SQLAlchemyProtocol
fsc.protocols.SQLAlchemyProtocol
Protocol methods
init_app
db.init_app(app: Flask)
Initialize a Flask application for use with this extension instance. This must be called before accessing the database engine or session with the app.
Protocol properties
engine
db.engine: sa.engine.Engine
The default engine associated with the current application.
engines
db.engines: Mapping[str | None, sa.engine.Engine]
Map of bind keys to sqlalchemy.engine.Engine
instances for current
application. The None
key refers to the default engine.
session
db.session: sa_orm.scoped_session[Any]
The default session for the current application context. It will be closed when the context ends.
metadatas
db.metadatas: Mapping[str | None, sa.MetaData]
Map of bind keys to sqlalchemy.schema.MetaData
instances. The None
key
refers to the default metadata.
metadata
db.metadata: sa.MetaData
The default metadata used by Model
and Table
if no bind key is set.
Query
db.Query: Callable[..., sa.orm.Query]
The default query class used by Model.query
and lazy="dynamic"
relationships.
Table
db.Table: Callable[..., sa.Table]
The default data table class that does not require user-specified metadata.
Model
db.Model: Callable[..., ModelProtocol]
The default object relationship mapping (ORM) model class that has extensive functionalies.
- where
ModelProtocol
is the protocol of Flask SQLAlchemy customized model.