新增小程序后端代码,包括数据库、路由、服务层等。

小程序前后端打通,包括登录、注册、绑定设备、查询绑定信息,修改小朋友名称等功能。
This commit is contained in:
HycJack
2026-04-13 01:54:57 +08:00
parent 33715373b0
commit a22fcafea9
46 changed files with 3713 additions and 268 deletions

View File

@@ -1,4 +1,5 @@
from functools import lru_cache
from pathlib import Path
from urllib.parse import quote_plus
from pydantic import Field
@@ -21,11 +22,13 @@ class Settings(BaseSettings):
host: str = Field(default="0.0.0.0", validation_alias="HOST")
port: int = Field(default=8001, validation_alias="PORT")
db_type: str = Field(default="mysql", validation_alias="DB_TYPE")
db_host: str = Field(default="127.0.0.1", validation_alias="DB_HOST")
db_port: int = Field(default=3306, validation_alias="DB_PORT")
db_user: str = Field(default="root", validation_alias="DB_USER")
db_password: str = Field(default="", validation_alias="DB_PASSWORD")
db_name: str = Field(default="mini_program", validation_alias="DB_NAME")
db_path: str = Field(default="./data.db", validation_alias="DB_PATH")
jwt_secret: str = Field(
default="dev_only_change_jwt_secret",
validation_alias="JWT_SECRET",
@@ -49,6 +52,18 @@ class Settings(BaseSettings):
f"{self.db_name}?charset=utf8mb4"
)
@property
def sqlite_dsn(self) -> str:
db_path = Path(self.db_path)
db_path.parent.mkdir(parents=True, exist_ok=True)
return f"sqlite:///{db_path.absolute()}"
@property
def database_dsn(self) -> str:
if self.db_type == "sqlite":
return self.sqlite_dsn
return self.mysql_dsn
@lru_cache(maxsize=1)
def get_settings() -> Settings: