# backend **Repository Path**: tkandy/backend ## Basic Information - **Project Name**: backend - **Description**: 双色球选号器项目 (练习版), 这是一个基于Python+ FastAPI+bootstrap 和 SQLite 的双色球选号器项目。用户可以通过前端界面选择红球和蓝球,并将选号记录保存到数据库中。项目还提供了查看历史选号记录的功能。通过 Beautiful Soup 4 爬虫实现获取最近一期的开奖数据。 - **Primary Language**: Python - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-01-13 - **Last Updated**: 2025-05-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 双色球选号器项目 ## 项目简介 这是一个基于 FastAPI 和 SQLite 的双色球选号器项目。用户可以通过前端界面选择红球和蓝球,并将选号记录保存到数据库中。项目还提供了查看历史选号记录的功能。通过 Beautiful Soup 4 爬虫实现获取最近一期的开奖数据。 ![输入图片说明](static/img/project.png) ## 目录结构 ├──backend/ │ ├── main.py # FastAPI 应用入口 │ ├── .env # 配置文件(需要手动创建) │ ├── database.py # 数据库初始化脚本 │ ├── static/ # 静态资源(CSS、JS、图片等) │ │ ├── css/ │ │ │ └── style.css # 样式文件 │ │ ├── bootstrap-5.3.3-dist/ │ │ │ ├── css/ │ │ │ └── js/ │ │ └── img/ │ ├── templates/ # 模板文件 │ │ ├── base.html # 基础模板 │ │ └── index.html # 主页模板 │ └── pythonsqlite.db # SQLite 数据库文件 ## 环境依赖 确保你已经安装了以下依赖: * Python 3.12+ * FastAPI * Uvicorn (用于启动 FastAPI 应用) * Jinja2 (用于渲染 HTML 模板) * SQLite3 * Bootstrap 5.3.3 (用于前端样式) 你可以使用 `pip` 来安装这些依赖: pip install fastapi uvicorn jinja2 sqlite3 ## 安装步骤 1. **克隆仓库**: git clone cd backend 2. **创建并激活虚拟环境**(推荐): python -m venv venv source venv/bin/activate # macOS/Linux venv\Scripts\activate # Windows 3. **安装依赖**: pip install -r requirements.txt 4. **初始化数据库**: 运行 `database.py` 来创建数据库表和索引: python database.py ## 配置文件.env APP_ENV=production APP_SECRET_KEY=your-secret-key-here DEBUG=False # API文档配置 ENABLE_API_DOCS=True # 静态文件配置 STATIC_DIRECTORY=static TEMPLATE_DIRECTORY=templates # 数据库配置 DATABASE_URL=pythonsqlite.db # 服务器配置 HOST=127.0.0.1 PORT=8000 WORKERS=1 # 应用配置 ## 启动应用 在项目根目录下运行以下命令启动 FastAPI 应用: uvicorn main:app --reload 访问 [http://127.0.0.1:8000](http://127.0.0.1:8000/) 即可看到应用主页。 ## 功能介绍 * **选号功能**:用户可以在红球区和蓝球区选择号码,点击“添加”按钮后,所选号码会显示在表格中。 * **保存选号记录**:用户可以点击“保存”按钮将当前选号记录保存到数据库中。 * **查看历史选号记录**:用户可以选择不同的期号,查看该期的历史选号记录。 ## API 文档 * **POST /save\_selection**:保存用户选号记录 * 请求体: json{ "red_balls": ["1", "2", "3", "4", "5", "6"], "blue_balls": ["1"], "issue_number": "2023001", "draw_date": "2023-01-01" } * 返回值: json{ "message": "选号已保存" } * **GET /get\_selections/{issue\_number}**:获取指定期号的选号记录 * 返回值: json{ "selections": [ { "red_balls": ["1", "2", "3", "4", "5", "6"], "blue_balls": ["1"] } ] } ## 注意事项 * **数据库文件路径**:确保 `main.py` 中的 `DATABASE_URL` 变量指向正确的数据库文件路径。 * **静态资源路径**:确保 `base.html` 中的静态资源路径正确,特别是 Bootstrap 文件的路径。 ## 贡献指南 欢迎贡献代码!请遵循以下步骤: 1. Fork 本仓库。 2. 创建新分支 (`git checkout -b feature/new-feature`)。 3. 提交更改 (`git commit -am 'Add some new feature'`)。 4. 推送到新分支 (`git push origin feature/new-feature`)。 5. 提交 Pull Request。 ## 许可证 本项目采用 MIT 许可证,详情参见 [LICENSE](vscode-webview://0iv2spo4563hfr1drcbljnp65urn1k3mtp9obcsjdslucnrmva40/LICENSE) 文件。 ***