3.7 KiB
3.7 KiB
Nano Banana API 中转平台 - 后端
基于 Flask 的 Nano Banana API 中转购买平台后端服务。
功能特性
- 📧 邮箱注册登录系统
- 💰 用户余额管理
- 💳 支付接口(支付宝/微信支付)
- 🎨 Nano Banana 文生图 API 中转
- 📊 用户统计和订单管理
- 🔐 JWT 身份认证
- 👨💼 管理员后台
技术栈
- Flask 3.0
- SQLite 数据库
- Flask-SQLAlchemy ORM
- Flask-JWT-Extended 认证
- Flask-CORS 跨域支持
- Flask-Mail 邮件服务
快速开始
1. 安装依赖
pip install -r requirements.txt
2. 配置环境变量
复制 .env.example 到 .env 并修改配置:
copy .env.example .env
必需配置项:
SECRET_KEY: Flask 密钥JWT_SECRET_KEY: JWT 密钥NANO_BANANA_API_KEY: Nano Banana API 密钥MAIL_USERNAME: 邮箱用户名MAIL_PASSWORD: 邮箱密码
3. 运行应用
python app.py
服务将在 http://localhost:5000 启动
4. 默认管理员账号
- 邮箱: admin@nba.com
- 密码: admin123
首次登录后请立即修改密码!
API 文档
认证相关 /api/auth
POST /register- 用户注册POST /login- 用户登录POST /refresh- 刷新令牌GET /me- 获取当前用户信息POST /change-password- 修改密码
用户相关 /api/user
GET /profile- 获取用户资料PUT /profile- 更新用户资料GET /balance- 获取账户余额GET /transactions- 获取交易记录GET /api-calls- 获取API调用记录GET /stats- 获取统计信息
订单相关 /api/order
POST /create- 创建充值订单GET /list- 获取订单列表GET /<order_id>- 获取订单详情POST /notify/<order_no>- 支付通知(测试用)
API服务 /api/service
POST /text-to-image- 文生图APIGET /models- 获取可用模型GET /pricing- 获取价格信息GET /call/<call_id>- 获取API调用详情
管理员 /api/admin
GET /users- 获取用户列表GET /users/<user_id>- 获取用户详情POST /users/<user_id>/toggle-status- 启用/禁用用户POST /users/<user_id>/adjust-balance- 调整用户余额GET /orders- 获取所有订单GET /api-calls- 获取所有API调用GET /stats/overview- 获取总览统计GET /stats/chart- 获取图表数据
数据库结构
用户表 (users)
- 邮箱、密码、用户名
- 余额、激活状态、管理员标识
- 创建时间、更新时间
订单表 (orders)
- 订单号、用户ID、金额
- 支付方式、订单状态
- 第三方交易ID、支付时间
交易记录表 (transactions)
- 用户ID、交易类型(充值/消费/退款)
- 金额、前后余额
- 关联订单、关联API调用
API调用表 (api_calls)
- 用户ID、API类型
- 提示词、参数、状态
- 结果URL、费用、错误信息
开发说明
添加新的路由
- 在
routes/目录下创建新的蓝图文件 - 在
app.py中注册蓝图
数据库迁移
# 进入 Python shell
python
>>> from app import create_app
>>> from models import db
>>> app = create_app()
>>> with app.app_context():
... db.create_all()
部署建议
使用 Gunicorn (生产环境)
pip install gunicorn
gunicorn -w 4 -b 0.0.0.0:5000 app:app
使用 Docker
FROM python:3.9
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["gunicorn", "-w", "4", "-b", "0.0.0.0:5000", "app:app"]
注意事项
- 生产环境请修改所有默认密钥
- 配置实际的邮件服务器
- 接入真实的支付接口
- 配置 HTTPS
- 定期备份数据库
许可证
MIT License