8e1b750300433893abd7a2fa35f4998ae8415b6e
Claude Code 蓝星 - 完整网站项目
这是一个基于 Vue 3 + Flask 的完整网站项目,包含用户注册登录、令牌管理、数据看板、使用日志、充值等功能。
项目结构
.
├── backend/ # Flask 后端
│ ├── app.py # 应用入口
│ ├── config.py # 配置文件
│ ├── requirements.txt # Python 依赖
│ ├── models/ # 数据模型
│ │ ├── user.py # 用户模型
│ │ ├── token.py # 令牌模型
│ │ ├── usage_log.py # 使用日志模型
│ │ └── ...
│ └── routes/ # API 路由
│ ├── auth.py # 认证相关
│ ├── tokens.py # 令牌管理
│ ├── dashboard.py # 数据看板
│ └── ...
├── frontend/ # Vue 3 前端
│ ├── src/
│ │ ├── api/ # API 接口
│ │ ├── views/ # 页面组件
│ │ ├── components/ # 通用组件
│ │ ├── stores/ # Pinia 状态管理
│ │ ├── router/ # 路由配置
│ │ └── ...
│ ├── package.json
│ └── vite.config.js
└── README.md
功能特性
前端功能
- ✅ 首页展示(服务介绍、分组选择、功能特色)
- ✅ 用户注册/登录
- ✅ 模型广场(模型浏览、筛选、搜索)
- ✅ 控制台数据看板
- ✅ 令牌管理(增删改查、批量操作)
- ✅ 使用日志查询
- ✅ 账户充值(支付宝/微信、兑换码)
- ✅ 邀请奖励系统
- ✅ 个人设置
后端功能
- ✅ JWT 认证系统
- ✅ 用户注册/登录 API
- ✅ 模型管理 API(列表、筛选、搜索)
- ✅ 令牌管理 API
- ✅ 数据统计 API
- ✅ 使用日志 API
- ✅ 充值订单 API
- ✅ 邀请奖励 API
技术栈
前端
- Vue 3 (Composition API)
- Vue Router 4
- Pinia (状态管理)
- Element Plus (UI 组件库)
- Axios (HTTP 客户端)
- Vite (构建工具)
后端
- Flask
- Flask-SQLAlchemy (ORM)
- Flask-JWT-Extended (JWT 认证)
- Flask-CORS (跨域支持)
- bcrypt (密码加密)
- SQLite/MySQL (数据库)
快速开始
后端设置
- 进入后端目录:
cd backend
- 创建虚拟环境(推荐):
python -m venv venv
# Windows
venv\Scripts\activate
# Linux/Mac
source venv/bin/activate
- 安装依赖:
pip install -r requirements.txt
- 配置环境变量(可选):
创建
.env文件:
SECRET_KEY=your-secret-key
JWT_SECRET_KEY=your-jwt-secret-key
DATABASE_URL=sqlite:///claude_code.db
CORS_ORIGINS=http://localhost:5173
- 运行后端服务:
python app.py
后端服务将在 http://localhost:5000 启动。
前端设置
- 进入前端目录:
cd frontend
- 安装依赖:
npm install
- 启动开发服务器:
npm run dev
前端服务将在 http://localhost:5173 启动,并且已经配置为允许所有IP访问。
从其他设备访问:
- 确保前端和后端服务器在同一网络下
- 使用服务器IP地址访问:
http://<服务器IP>:5173 - 例如:
http://192.168.1.100:5173 - 后端API已配置为允许跨域访问
API 文档
认证相关
用户注册
POST /api/auth/register
Body: {
"username": "string",
"password": "string",
"confirm_password": "string",
"invite_code": "string" (可选)
}
用户登录
POST /api/auth/login
Body: {
"username": "string",
"password": "string"
}
获取当前用户
GET /api/auth/me
Headers: {
"Authorization": "Bearer {token}"
}
令牌管理
获取令牌列表
GET /api/tokens?keyword=xxx&key=xxx
Headers: {
"Authorization": "Bearer {token}"
}
创建令牌
POST /api/tokens
Headers: {
"Authorization": "Bearer {token}"
}
Body: {
"name": "string",
"group": "string",
"remaining_quota": number (可选),
"total_quota": number (可选),
"ip_restriction": "string" (可选)
}
更新令牌
PUT /api/tokens/{id}
Headers: {
"Authorization": "Bearer {token}"
}
Body: {
"name": "string",
...
}
删除令牌
DELETE /api/tokens/{id}
Headers: {
"Authorization": "Bearer {token}"
}
数据看板
获取统计数据
GET /api/dashboard/stats
Headers: {
"Authorization": "Bearer {token}"
}
使用日志
获取使用日志
GET /api/logs/usage?page=1&per_page=20&start_date=xxx&end_date=xxx&token_name=xxx&model_name=xxx&group=xxx
Headers: {
"Authorization": "Bearer {token}"
}
模型广场
获取模型列表
GET /api/models?page=1&per_page=20&provider=xxx&tags=xxx&token_group=xxx&billing_type=xxx&endpoint_type=xxx&search=xxx&show_recharge_price=true&show_multiplier=true
获取单个模型详情
GET /api/models/{id}
获取筛选选项
GET /api/models/filters
充值相关
获取充值信息
GET /api/recharge/info
Headers: {
"Authorization": "Bearer {token}"
}
创建充值订单
POST /api/recharge/create
Headers: {
"Authorization": "Bearer {token}"
}
Body: {
"amount": number,
"payment_method": "alipay" | "wechat"
}
兑换码充值
POST /api/recharge/exchange
Headers: {
"Authorization": "Bearer {token}"
}
Body: {
"code": "string"
}
数据库模型
User (用户)
- id: 主键
- username: 用户名(唯一)
- email: 邮箱(可选)
- password_hash: 密码哈希
- balance: 账户余额
- total_consumption: 历史消耗
- request_count: 请求次数
- user_group: 用户分组
- invite_code: 邀请码
- invited_by: 邀请人ID
Token (令牌)
- id: 主键
- user_id: 用户ID
- name: 令牌名称
- key: API密钥
- status: 状态(enabled/disabled)
- remaining_quota: 剩余额度
- total_quota: 总额度
- group: 分组
- available_models: 可用模型
- ip_restriction: IP限制
- expires_at: 过期时间
UsageLog (使用日志)
- id: 主键
- user_id: 用户ID
- token_id: 令牌ID
- log_type: 日志类型
- model: 模型名称
- input_tokens: 输入Token数
- output_tokens: 输出Token数
- cost: 花费
- created_at: 创建时间
Model (模型)
- id: 主键
- name: 模型名称(唯一)
- provider: 供应商(Anthropic、OpenAI等)
- description: 模型描述
- input_price: 输入价格(每100万tokens)
- output_price: 输出价格(每100万tokens)
- billing_type: 计费类型(pay_as_you_go按量计费、per_request按次计费)
- endpoint_type: 端点类型(anthropic、openai)
- tags: 标签(JSON数组)
- available_groups: 可用分组(JSON数组)
- multiplier: 倍率
- is_active: 是否激活
开发说明
初始化模型数据
运行以下命令初始化示例模型数据:
cd backend
python init_models.py
这将创建6个示例模型供测试使用。
数据库迁移
项目使用 SQLite 作为默认数据库,首次运行会自动创建表结构。
如需使用 MySQL,修改 config.py 中的 SQLALCHEMY_DATABASE_URI。
生产环境部署
-
修改后端配置:
- 设置强密码的
SECRET_KEY和JWT_SECRET_KEY - 配置生产数据库
- 设置正确的
CORS_ORIGINS
- 设置强密码的
-
构建前端:
cd frontend
npm run build
- 部署:
- 后端:使用 Gunicorn 或 uWSGI
- 前端:将
dist目录部署到 Nginx 或其他静态文件服务器
注意事项
- 默认使用 SQLite 数据库,生产环境建议使用 MySQL 或 PostgreSQL
- JWT token 默认 24 小时过期,可在
config.py中调整 - 充值功能需要集成真实的支付接口(支付宝、微信等)
- 邀请奖励的返佣比例需要在业务逻辑中实现
许可证
MIT License
联系方式
如有问题,请联系管理员微信: cursor2028
Description
Languages
Vue
59.3%
Python
32.6%
JavaScript
5.5%
CSS
2.4%
HTML
0.2%