Tortoise-ORM BlackSheep integration¶
We have a lightweight integration util tortoise.contrib.blacksheep
which has a single function register_tortoise
which sets up Tortoise-ORM on startup and cleans up on teardown.
BlackSheep is an asynchronous web framework to build event based web applications with Python.
See the BlackSheep Examples & have a look at the Pydantic serialisation tutorials.
Reference¶
-
tortoise.contrib.blacksheep.register_tortoise(app, config=
None
, config_file=None
, db_url=None
, modules=None
, generate_schemas=False
, add_exception_handlers=False
)[source]¶ Registers
startup
andshutdown
events to set-up and tear-down Tortoise-ORM inside a BlackSheep application.You can configure using only one of
config
,config_file
and(db_url, modules)
.- Parameters:¶
- app¶
BlackSheep app.
- config=
None
¶ Dict containing config:
Example
{ 'connections': { # Dict format for connection 'default': { 'engine': 'tortoise.backends.asyncpg', 'credentials': { 'host': 'localhost', 'port': '5432', 'user': 'tortoise', 'password': 'qwerty123', 'database': 'test', } }, # Using a DB_URL string 'default': 'postgres://postgres:qwerty123@localhost:5432/events' }, 'apps': { 'models': { 'models': ['__main__'], # If no default_connection specified, defaults to 'default' 'default_connection': 'default', } } }
- config_file=
None
¶ Path to .json or .yml (if PyYAML installed) file containing config with same format as above.
- db_url=
None
¶ Use a DB_URL string. See DB_URL
- modules=
None
¶ Dictionary of
key
: [list_of_modules
] that defined “apps” and modules that should be discovered for models.- generate_schemas=
False
¶ True to generate schema immediately. Only useful for dev environments or SQLite
:memory:
databases- add_exception_handlers=
False
¶ True to add some automatic exception handlers for
DoesNotExist
&IntegrityError
. This is not recommended for production systems as it may leak data.
- Raises:¶
ConfigurationError – For any configuration error
- Return type:¶
None