Commit c77e9d1d authored by Frédéric Mangano-Tarumi's avatar Frédéric Mangano-Tarumi Committed by Lukas Fleischer
Browse files

Integrate SQLAlchemy into FastAPI

Signed-off-by: Lukas Fleischer's avatarLukas Fleischer <>
parent a5554c19
......@@ -10,6 +10,8 @@ except ImportError:
import aurweb.config
engine = None # See get_engine
def get_sqlalchemy_url():
......@@ -38,6 +40,34 @@ def get_sqlalchemy_url():
raise ValueError('unsupported database backend')
def get_engine():
Return the global SQLAlchemy engine.
The engine is created on the first call to get_engine and then stored in the
`engine` global variable for the next calls.
from sqlalchemy import create_engine
global engine
if engine is None:
engine = create_engine(get_sqlalchemy_url(),
# check_same_thread is for a SQLite technicality
connect_args={"check_same_thread": False})
return engine
def connect():
Return an SQLAlchemy connection. Connections are usually pooled. See
Since SQLAlchemy connections are context managers too, you should use it
with Python’s `with` operator, or with FastAPI’s dependency injection.
return get_engine().connect()
class Connection:
_conn = None
_paramstyle = None
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment