# mytestpro-lock **Repository Path**: lao-ke1990/mytestpro-lock ## Basic Information - **Project Name**: mytestpro-lock - **Description**: No description available - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-15 - **Last Updated**: 2025-10-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 简单用户登录系统 这是一个基于 FastAPI 和 SQLite 的用户管理系统,支持管理员管理普通用户和普通用户修改个人信息的功能。 ## 项目特点 - 使用 FastAPI 作为 Web 框架 - 使用 SQLite 作为数据库存储用户信息 - 使用 JWT 进行用户认证 - 支持管理员权限控制 - 用户信息包含姓名、性别、昵称、邮箱地址和手机号码 - 支持 Docker 容器化部署 ## 技术栈 - **后端**: Python 3.9+, FastAPI, SQLAlchemy - **认证**: JWT (JSON Web Tokens) - **数据库**: SQLite - **容器化**: Docker ## 快速开始 ### 本地开发环境 1. 确保已安装 Python 3.9 或更高版本 2. 克隆项目到本地 ```bash # 这里假设有一个 Git 仓库,实际操作请替换为真实仓库地址 git clone https://gitee.com/username/repo-name.git cd repo-name ``` 3. 创建虚拟环境并激活 ```bash # Windows python -m venv venv venv\Scripts\activate # Linux/Mac python3 -m venv venv source venv/bin/activate ``` 4. 安装项目依赖 ```bash pip install -r requirements.txt ``` 5. 确保 data 目录存在 ```bash # Windows mkdir data # Linux/Mac mkdir -p data ``` 6. 运行应用 ```bash python main.py ``` 7. 访问 API 文档 - Swagger UI: http://localhost:8000/docs - Redoc: http://localhost:8000/redoc ### Docker 部署 1. 确保已安装 Docker 2. 构建 Docker 镜像 ```bash docker build -t user-management-system . ``` 3. 运行 Docker 容器 ```bash docker run -p 8000:8000 user-management-system ``` 4. 访问 API 文档 - Swagger UI: http://localhost:8000/docs - Redoc: http://localhost:8000/redoc ## 默认用户 应用启动时会自动创建两个默认用户,其中 admin 用户具有管理员权限: - 用户名: `admin`, 密码: `admin` (管理员) - 用户名: `user1`, 密码: `password1` (普通用户) ## API 功能说明 ### 用户认证 - **POST /token**: 获取访问令牌(登录) ### 用户信息管理 - **GET /users/me**: 获取当前登录用户信息 - **PUT /users/me**: 更新当前登录用户信息 ### 管理员功能 - **GET /users**: 获取所有用户列表(需要管理员权限) - **GET /users/{user_id}**: 获取指定用户信息(需要管理员权限) - **POST /users**: 创建新用户(需要管理员权限) - **PUT /users/{user_id}**: 更新指定用户信息(需要管理员权限) - **DELETE /users/{user_id}**: 删除指定用户(需要管理员权限) ## 项目结构 ``` mytestpro/ ├── app.py # 主应用程序文件 ├── requirements.txt # 项目依赖 ├── Dockerfile # Docker 构建文件 ├── .dockerignore # Docker 忽略文件 ├── templates/ │ ├── login.html # 登录页面 │ └── welcome.html # 欢迎页面 ├── static/ │ ├── layui.css # layui 样式文件 │ ├── layui.js # layui JavaScript 文件 │ ├── login.css # 自定义登录页面样式 │ └── welcome.css # 自定义欢迎页面样式 ├── data/ # 数据库文件目录 │ └── users.db # SQLite 数据库文件(自动创建) └── venv/ # Python 虚拟环境 ``` ## 功能说明 ### 登录功能 - 用户可以通过输入用户名和密码进行登录 - 系统会验证用户输入的凭据是否与数据库中的记录匹配 - 登录成功后,用户将被重定向到欢迎页面 - 登录失败时,系统会显示错误信息 ### 欢迎页面 - 显示欢迎信息,包含当前登录用户的用户名 - 提供退出登录功能,点击后返回登录页面 ## 数据库设计 系统使用 SQLite 数据库存储用户信息,数据库文件位于 `data/users.db`。数据库中只有一个 `user` 表,结构如下: | 字段名 | 数据类型 | 描述 | |----------|----------|------------| | id | INTEGER | 主键 | | username | STRING | 用户名(唯一) | | password | STRING | 密码 | ## 开发说明 - 如需添加新功能,请在 `app.py` 中扩展相应的路由和逻辑 - 如需修改前端页面,请编辑 `templates/` 目录下的 HTML 文件 - 如需自定义样式,请编辑 `static/` 目录下的 CSS 文件 ## 注意事项 - 本项目仅作为学习和演示用途,生产环境中应考虑使用更安全的密码存储方式(如哈希加盐) - 生产环境中应修改默认用户名和密码 - 生产环境中应关闭 Flask 的调试模式 ## License 本项目采用 MIT 许可证 - 详情请查看 [LICENSE](LICENSE) 文件