# industry-backend **Repository Path**: willclark/industry-backend ## Basic Information - **Project Name**: industry-backend - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-02 - **Last Updated**: 2026-02-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Industry Backend Flask 纯后端项目,**只提供数据与业务接口**,不提供页面(无模板、无静态前端)。 ## 环境 - **Python 3.11**(项目要求 3.11,见 `pyproject.toml`) - 建议使用虚拟环境 - 所有源文件使用 **UTF-8** 编码(`.editorconfig` 与文件头 `# -*- coding: utf-8 -*-` 已配置) ## 安装与运行 ```bash # 使用 Python 3.11 创建虚拟环境 # Windows(Python Launcher): py -3.11 -m venv venv venv\Scripts\activate # Linux / macOS: python3.11 -m venv venv source venv/bin/activate # 安装依赖 pip install -r requirements.txt # 开发环境启动(Flask 内置服务器) python run.py # 生产环境启动(Waitress WSGI 服务器) python run_production.py ``` - 开发:服务默认在 `http://127.0.0.1:5000`。 - 生产:使用 Waitress,可通过环境变量 `HOST`、`PORT` 指定地址与端口;生产环境务必设置 `SECRET_KEY`。 ## 接口说明 | 路径 | 方法 | 说明 | | ---------------------- | ------ | --------------------------------------------------- | | `/` | GET | 默认接口:应用已启动说明及常用链接 | | `/health` | GET | 健康检查 | | `/api/v1/` | GET | API v1 说明 | | `/api/v1/users` | GET | 用户列表(分页:`?page=1&per_page=20`) | | `/api/v1/users/` | GET | 查询单个用户 | | `/api/v1/users` | POST | 创建用户(JSON: `{"username","email","password"}`) | | `/api/v1/users/` | PUT | 更新用户(JSON: `{"username","email","password"}`) | | `/api/v1/users/` | DELETE | 删除用户 | | `/api/v1/data/example` | GET | 示例:获取数据 | | `/api/v1/data/example` | POST | 示例:创建数据(JSON body: `{"name": "xxx"}`) | ## 用户系统与数据库 - **数据库**:SQLite,文件位于项目目录下 `instance/data.sqlite`(可通过环境变量 `DATABASE_URI` 覆盖)。 - **用户表**:`username`、`email`(唯一)、`password` 存为哈希,接口返回不含密码。 - **RESTful**:用户增删改查见上表,列表支持 `page`、`per_page` 分页。 - **初始化示例数据**:`python scripts/init_data.py` 会创建表并写入示例用户(可在脚本内修改 `SAMPLE_USERS`)。 ## 运行测试 ```bash pip install -r requirements.txt pytest tests/ -v ``` - 使用内存 SQLite(`config.TestingConfig`),不写本地库。 - 用户系统用例在 `tests/test_users.py`(列表、单查、创建、更新、删除及 400/404/409)。 ## 项目结构 ``` industry-backend/ ├── app/ │ ├── __init__.py # 应用工厂、DB 初始化 │ ├── models/ # 数据模型 │ │ ├── base.py # SQLAlchemy db │ │ └── user.py # User 模型 │ └── api/ │ ├── __init__.py # API 包 │ └── v1/ │ ├── __init__.py # v1 蓝图 │ ├── routes.py # 示例路由 │ └── users.py # 用户 RESTful API ├── instance/ # 运行时生成,SQLite 等(已 gitignore) ├── config.py # 配置(含 SQLite URI) ├── pyproject.toml # 项目元数据(Python 3.11) ├── requirements.txt ├── scripts/ │ └── init_data.py # 初始化表 + 示例数据(可改 SAMPLE_USERS) ├── tests/ # 测试 │ ├── conftest.py # pytest fixture(app、client) │ └── test_users.py # 用户 API 测试 ├── run.py # 开发环境启动 ├── run_production.py # 生产环境启动(Waitress) └── README.md ``` 后续业务接口在 `app/api/v1/` 下扩展;新增版本可建 `app/api/v2/` 等。