Set up Turso in your Flask project in minutes
Install the libSQL dialect
pip install sqlalchemy-libsql python-dotenv
Retrieve database credentials
turso db show --url <database-name>
turso db tokens create <database-name>
.env
TURSO_DATABASE_URL= TURSO_AUTH_TOKEN=
Create database models
from sqlalchemy import String from sqlalchemy.orm import DeclarativeBase from sqlalchemy.orm import Mapped from sqlalchemy.orm import mapped_column class Base(DeclarativeBase): pass class Item(Base): __tablename__ = "items" id: Mapped[str] = mapped_column(primary_key=True) foo: Mapped[str] = mapped_column(String(255)) bar: Mapped[str] = mapped_column(String(100)) def __repr__(self) -> str: return f"Item(id={self.id!r}, foo={self.foo!r}, bar={self.bar!r})"
Query
from dotenv import load_dotenv from sqlalchemy import create_engine from sqlalchemy.orm import Session from sqlalchemy import select from models import Item load_dotenv() # Get environment variables TURSO_DATABASE_URL = os.environ.get("TURSO_DATABASE_URL") TURSO_AUTH_TOKEN = os.environ.get("TURSO_AUTH_TOKEN") # construct special SQLAlchemy URL dbUrl = f"sqlite+{TURSO_DATABASE_URL}/?authToken={TURSO_AUTH_TOKEN}&secure=true" engine = create_engine(dbUrl, connect_args={'check_same_thread': False}, echo=True) @app.route("/", methods=(["GET"])) def home(): session = Session(engine) # get & print items stmt = select(Item) for item in session.scalars(stmt): print(item)
Was this page helpful?