初始化项目
This commit is contained in:
commit
d99b278d24
|
|
@ -0,0 +1,38 @@
|
||||||
|
# ---- 通用 ----
|
||||||
|
.DS_Store
|
||||||
|
*.log
|
||||||
|
*.tmp
|
||||||
|
*.swp
|
||||||
|
__pycache__/
|
||||||
|
*.py[cod]
|
||||||
|
.env
|
||||||
|
venv/
|
||||||
|
.idea/
|
||||||
|
.vscode/
|
||||||
|
|
||||||
|
# ---- Python (backend) ----
|
||||||
|
backend/__pycache__/
|
||||||
|
backend/.mypy_cache/
|
||||||
|
backend/.pytest_cache/
|
||||||
|
backend/.ruff_cache/
|
||||||
|
*.sqlite3
|
||||||
|
|
||||||
|
# 虚拟环境
|
||||||
|
backend/venv/
|
||||||
|
.env/
|
||||||
|
|
||||||
|
# ---- Node.js / React (frontend) ----
|
||||||
|
frontend/node_modules/
|
||||||
|
frontend/dist/
|
||||||
|
frontend/.vite/
|
||||||
|
frontend/.eslintcache
|
||||||
|
|
||||||
|
# 打包产物
|
||||||
|
*.tgz
|
||||||
|
|
||||||
|
# ---- Docker ----
|
||||||
|
*.pid
|
||||||
|
*.seed
|
||||||
|
*.pid.lock
|
||||||
|
docker-compose.override.yml
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
3.13.0
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"is_init": false,
|
||||||
|
"db_type": "sqlite",
|
||||||
|
"mysql": {
|
||||||
|
"host": "",
|
||||||
|
"port": "",
|
||||||
|
"user": "",
|
||||||
|
"password": "",
|
||||||
|
"db_name": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,52 @@
|
||||||
|
import uvicorn
|
||||||
|
import os
|
||||||
|
import json
|
||||||
|
from fastapi import FastAPI
|
||||||
|
from pathlib import Path
|
||||||
|
from models.schemas.system import InitStatusResponse, InitConfigRequest
|
||||||
|
|
||||||
|
|
||||||
|
# 响应类型
|
||||||
|
|
||||||
|
|
||||||
|
def load_init_config():
|
||||||
|
"""读取配置文件"""
|
||||||
|
config_path = Path(__file__).parent / "config" / "init.json"
|
||||||
|
with open(config_path, "r", encoding="utf-8") as f:
|
||||||
|
return json.load(f)
|
||||||
|
|
||||||
|
|
||||||
|
def create_app():
|
||||||
|
app = FastAPI(title="Workflow API", version="1.0.0")
|
||||||
|
|
||||||
|
@app.get("/")
|
||||||
|
async def root():
|
||||||
|
return {"message": "hello"}
|
||||||
|
|
||||||
|
@app.get(
|
||||||
|
"/check_init",
|
||||||
|
tags=["System"],
|
||||||
|
description="系统是否初始化",
|
||||||
|
response_model=InitStatusResponse,
|
||||||
|
)
|
||||||
|
async def check_init():
|
||||||
|
init_config = load_init_config()
|
||||||
|
is_init = init_config.get("is_init")
|
||||||
|
return InitStatusResponse(data=is_init)
|
||||||
|
|
||||||
|
@app.post(
|
||||||
|
"/init_system",
|
||||||
|
tags=["System"],
|
||||||
|
description="系统初始化",
|
||||||
|
response_model=InitStatusResponse,
|
||||||
|
)
|
||||||
|
async def init_system(request: InitConfigRequest):
|
||||||
|
return InitStatusResponse()
|
||||||
|
|
||||||
|
return app
|
||||||
|
|
||||||
|
|
||||||
|
app = create_app()
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
uvicorn.run("main:app", host="0.0.0.0", port=8080, reload=True)
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
from pydantic import BaseModel
|
||||||
|
|
||||||
|
|
||||||
|
class BaseResponse(BaseModel):
|
||||||
|
success: bool = True
|
||||||
|
message: str | None = None
|
||||||
|
|
||||||
|
|
||||||
|
class InitConfigRequest(BaseModel):
|
||||||
|
db_type: str
|
||||||
|
db_host: str | None
|
||||||
|
db_port: str | None
|
||||||
|
db_user: str | None
|
||||||
|
db_password: str | None
|
||||||
|
db_name: str | None
|
||||||
|
admin_password: str
|
||||||
|
|
||||||
|
|
||||||
|
class InitStatusResponse(BaseResponse):
|
||||||
|
data: bool = False
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
fastapi==0.116.1
|
||||||
|
uvicorn==0.35,0
|
||||||
Loading…
Reference in New Issue