Python 后端提交

Python 后端(FastAPI + FastMCP + ...)的初始版本号设定为 0.1.0,这是 uv 在 pypriject.toml
里给我自动设置的,我觉得有道理。
This commit is contained in:
2026-04-21 13:38:46 +08:00
parent 14eadaab86
commit b284c3c260
27 changed files with 1691 additions and 0 deletions

29
router/enhance/model.py Normal file
View File

@@ -0,0 +1,29 @@
from typing import Optional
from sqlalchemy import JSON, Column
from sqlmodel import Field, SQLModel, create_engine
sqlite_file_name = "data/njupt_api.db"
sqlite_url = f"sqlite:///{sqlite_file_name}"
engine = create_engine(sqlite_url, connect_args={"check_same_thread": False})
class Course(SQLModel, table=True):
id: Optional[int] = Field(default=None, primary_key=True)
name: str
teacher: Optional[str] = Field(default=None, nullable=True)
classroom: Optional[str] = Field(default=None, nullable=True)
weeks: list[int] = Field(default=[], sa_column=Column(JSON))
day: int
classes: list[int] = Field(default=[], sa_column=Column(JSON))
class Alias(SQLModel, table=True):
id: Optional[int] = Field(default=None, primary_key=True)
originalName: Optional[str] = Field(default=None, nullable=True) # noqa: N815
aliasName: Optional[str] = Field(default=None, nullable=True) # noqa: N815
def create_db_and_tables() -> None:
SQLModel.metadata.create_all(engine)