init: 项目初始提交 - NeoZQYY Monorepo 完整代码

This commit is contained in:
Neo
2026-02-15 14:58:14 +08:00
commit ded6dfb9d8
769 changed files with 182616 additions and 0 deletions

View File

View File

@@ -0,0 +1,36 @@
"""
后端配置加载
优先级(低 → 高):根 .env → 应用 .env.local → 环境变量
敏感值DSN、Token禁止提交仅放在 .env / .env.local 中。
"""
import os
from pathlib import Path
from dotenv import load_dotenv
# 根 .env公共配置
_root_env = Path(__file__).resolve().parents[3] / ".env"
load_dotenv(_root_env, override=False)
# 应用级 .env.local私有覆盖优先级更高
_local_env = Path(__file__).resolve().parents[1] / ".env.local"
load_dotenv(_local_env, override=True)
def get(key: str, default: str | None = None) -> str | None:
"""从环境变量读取配置值。"""
return os.getenv(key, default)
# ---- 数据库连接参数 ----
DB_HOST: str = get("DB_HOST", "localhost")
DB_PORT: str = get("DB_PORT", "5432")
DB_USER: str = get("DB_USER", "")
DB_PASSWORD: str = get("DB_PASSWORD", "")
APP_DB_NAME: str = get("APP_DB_NAME", "zqyy_app")
# ---- 通用 ----
TIMEZONE: str = get("TIMEZONE", "Asia/Shanghai")
LOG_LEVEL: str = get("LOG_LEVEL", "INFO")

View File

@@ -0,0 +1,26 @@
"""
zqyy_app 数据库连接
使用 psycopg2 直连 PostgreSQL不引入 ORM。
连接参数从环境变量读取(经 config 模块加载)。
"""
import psycopg2
from psycopg2.extensions import connection as PgConnection
from app.config import APP_DB_NAME, DB_HOST, DB_PASSWORD, DB_PORT, DB_USER
def get_connection() -> PgConnection:
"""
获取 zqyy_app 数据库连接。
调用方负责关闭连接(推荐配合 contextmanager 或 try/finally 使用)。
"""
return psycopg2.connect(
host=DB_HOST,
port=DB_PORT,
user=DB_USER,
password=DB_PASSWORD,
dbname=APP_DB_NAME,
)

22
apps/backend/app/main.py Normal file
View File

@@ -0,0 +1,22 @@
"""
NeoZQYY 后端 API 入口
基于 FastAPI 构建,为微信小程序提供 RESTful API。
OpenAPI 文档自动生成于 /docsSwagger UI和 /redocReDoc
"""
from fastapi import FastAPI
app = FastAPI(
title="NeoZQYY API",
description="台球门店运营助手 — 微信小程序后端 API",
version="0.1.0",
docs_url="/docs",
redoc_url="/redoc",
)
@app.get("/health", tags=["系统"])
async def health_check():
"""健康检查端点,用于探活和监控。"""
return {"status": "ok"}

View File

View File

View File