初次提交

This commit is contained in:
2025-10-14 20:05:29 +08:00
commit 6e4e48fdd2
673 changed files with 437006 additions and 0 deletions

92
backend/start_simple.py Normal file
View File

@@ -0,0 +1,92 @@
#!/usr/bin/env python3
# 简化版启动脚本,解决模块导入问题
import os
import sys
from pathlib import Path
# 添加当前目录到Python路径
current_dir = Path(__file__).parent
sys.path.insert(0, str(current_dir))
print(f"当前目录: {current_dir}")
print(f"Python路径: {sys.path[:3]}...")
# 检查必要目录
required_dirs = ['app', 'app/core', 'app/api/v1/endpoints']
for dir_path in required_dirs:
full_path = current_dir / dir_path
if not full_path.exists():
print(f"创建目录: {dir_path}")
full_path.mkdir(parents=True, exist_ok=True)
# 创建__init__.py
init_file = full_path / '__init__.py'
if not init_file.exists():
init_file.write_text(f'"""{dir_path} 模块包"""\n')
try:
# 测试导入
print("测试导入模块...")
from app.core.config import settings
print("✓ app.core.config 导入成功")
from app.api.v1.endpoints import health, auth, files
print("✓ app.api.v1.endpoints 导入成功")
# 启动FastAPI应用
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
import uvicorn
app = FastAPI(
title="云盘应用 API",
description="现代化的云存储Web应用后端API",
version="1.0.0",
docs_url="/docs",
redoc_url="/redoc"
)
# CORS中间件
app.add_middleware(
CORSMiddleware,
allow_origins=["*"], # 临时允许所有来源
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# 包含路由
app.include_router(health.router, prefix="/api/v1", tags=["health"])
app.include_router(auth.router, prefix="/api/v1/auth", tags=["authentication"])
app.include_router(files.router, prefix="/api/v1/files", tags=["files"])
@app.get("/")
async def root():
return {"message": "云盘应用 API", "version": "1.0.1"}
print("✓ FastAPI应用创建成功")
# 启动服务
print("启动服务...")
print("访问地址: http://localhost:8000")
print("API文档: http://localhost:8000/docs")
uvicorn.run(
app,
host="0.0.0.0",
port=8000,
reload=False # 关闭热重载避免问题
)
except ImportError as e:
print(f"导入错误: {e}")
print("\n可能的解决方案:")
print("1. 确保在正确的目录运行包含main.py的目录")
print("2. 安装依赖: pip install fastapi uvicorn sqlalchemy pymysql redis python-jose passlib python-multipart pydantic pydantic-settings httpx python-dotenv loguru")
print("3. 检查app目录结构是否完整")
sys.exit(1)
except Exception as e:
print(f"启动错误: {e}")
sys.exit(1)