Files
cursornew2026/backend/app/main.py
ccdojox-crypto 9e2333c90c CursorPro 后台管理系统 v1.0
功能:
- 激活码管理 (Pro/Auto 两种类型)
- 账号池管理
- 设备绑定记录
- 使用日志
- 搜索/筛选功能
- 禁用/启用功能 (支持退款参考)
- 全局设置 (换号间隔、额度消耗等)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-16 20:54:44 +08:00

70 lines
1.7 KiB
Python

from fastapi import FastAPI, Request
from fastapi.staticfiles import StaticFiles
from fastapi.middleware.cors import CORSMiddleware
from fastapi.responses import HTMLResponse, FileResponse
from contextlib import asynccontextmanager
import os
from app.database import engine, Base
from app.api import client_router, admin_router
@asynccontextmanager
async def lifespan(app: FastAPI):
# 启动时创建数据库表
Base.metadata.create_all(bind=engine)
yield
# 关闭时清理
app = FastAPI(
title="CursorPro 管理后台",
description="Cursor 账号管理系统 API",
version="1.0.0",
lifespan=lifespan
)
# CORS 配置
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# 静态文件
static_path = os.path.join(os.path.dirname(__file__), "..", "static")
if os.path.exists(static_path):
app.mount("/static", StaticFiles(directory=static_path), name="static")
# 模板路径
templates_path = os.path.join(os.path.dirname(__file__), "..", "templates")
# 注册路由
app.include_router(client_router)
app.include_router(admin_router)
@app.get("/", response_class=HTMLResponse)
async def index():
"""管理后台首页"""
index_file = os.path.join(templates_path, "index.html")
if os.path.exists(index_file):
return FileResponse(index_file, media_type="text/html")
return HTMLResponse(content="""
<html>
<head><title>CursorPro 管理后台</title></head>
<body>
<h1>CursorPro 管理后台</h1>
<p>请访问 <a href="/docs">/docs</a> 查看 API 文档</p>
</body>
</html>
""")
@app.get("/health")
async def health_check():
"""健康检查"""
return {"status": "ok"}