Flask + Turso
Flask 프로젝트에도 몇 분이면 Turso를 붙일 수 있어요. SQLAlchemy의 libSQL 방언(dialect)을 설치하고, 데이터베이스 모델을 만들고, 세션으로 쿼리하는 절차를 차례대로 안내해요.
출처: 문서
본문
시작 전 준비물
시작하기 전에 다음을 확인해 주세요.
- Turso CLI 설치
- Turso 가입 또는 로그인
- Flask 앱 준비 — 자세히 알아보기
단계별 진행
1. libSQL 방언 설치하기
pip install sqlalchemy-libsql python-dotenv
2. 데이터베이스 자격 증명 가져오기
데이터베이스 URL과 인증 토큰을 준비해 주세요. 공식 문서의 "Retrieve database credentials" 절차를 따르면 돼요. 이 값들은 환경 변수로 보관하는 것이 좋아요.
3. 데이터베이스 모델 만들기
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})"
4. 쿼리하기
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)
예제 (Examples)
- Social App — github.com/tursodatabase/examples에서 전체 소스 코드를 볼 수 있어요.
더 알아보기 (Learn more)
- Python 퀵스타트 — Python용 libSQL 클라이언트 기본 사용법
- SQLAlchemy 연동 — SQLAlchemy ORM과 함께 Turso 쓰기
- Python 레퍼런스 — Python 클라이언트 API 전체 정리
- Turso CLI 설치 — Turso CLI 설치 절차