# axiom-boot-example **Repository Path**: keygod/axiom-boot-example ## Basic Information - **Project Name**: axiom-boot-example - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-01 - **Last Updated**: 2026-01-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Axiom API Example 基于 Axiom Boot 框架的后端示例项目,包含完整的系统管理模块。 > **版本说明**: 本项目基于 Axiom Boot **0.2.0** 版本开发 ## 功能模块 ### 系统管理 (system) - **用户管理**: 用户 CRUD、角色绑定、密码管理 - **角色管理**: 角色 CRUD、菜单分配、权限分配 - **菜单管理**: 树形菜单、目录/菜单/按钮三级结构 - **权限管理**: 接口权限、三级权限树 - **字典管理**: 动态字典配置 - **配置管理**: 系统参数配置 - **数据权限**: 基于角色的数据范围控制 - **OAuth客户端**: OAuth 2.0 客户端管理 - **操作日志**: 用户操作审计 ## 快速开始 ### 1. 环境准备 ```bash # 创建虚拟环境 python -m venv venv # 激活虚拟环境 (Windows) venv\Scripts\activate # 激活虚拟环境 (Linux/Mac) source venv/bin/activate # 安装依赖 pip install -r requirements.txt ``` ### 2. 配置数据库 ```bash # 复制配置文件 cp env.example .env # 编辑 .env 文件,配置数据库连接 # MYSQL_URL="mysql+aiomysql://root:password@localhost:3306/axiom_example_db" ``` ### 3. 初始化数据库 #### MySQL 执行 `sql/mysql/system/` 目录下的 SQL 脚本: ```bash # 按顺序执行 001_sys_user.sql 002_sys_role.sql 003_sys_user_role.sql 004_sys_oauth_client.sql 005_sys_permission.sql 006_sys_role_permission.sql 007_sys_dict.sql 008_sys_menu.sql 009_sys_role_menu.sql 010_sys_config.sql 011_sys_data_scope.sql 012_sys_operation_log.sql ``` #### PostgreSQL 执行 `sql/postgresql/system/` 目录下的 SQL 脚本(顺序相同)。 PostgreSQL 连接字符串示例: ``` POSTGRES_URL="postgresql+asyncpg://user:password@localhost:5432/axiom_example_db" ``` ### 4. 启动服务 #### 方式一:直接启动 ```bash # 启动 API 服务 python app.py # 启动后台 Worker(需要配置 AXIOM_TASK__ENABLED=true) python worker.py ``` #### 方式二:使用管理工具 ```bash # 启动 API 服务 python manage.py dev # 启动后台 Worker python manage.py worker # 启动多个 Worker 进程 python manage.py worker --workers 3 # 监听指定队列 python manage.py worker --queue my_queue ``` 服务启动后访问: - API 文档: http://localhost:8000/docs - ReDoc: http://localhost:8000/redoc ## 项目结构 ``` axiom_api_example/ ├── src/ │ ├── __init__.py │ ├── auth/ # 认证模块 │ │ ├── __init__.py │ │ ├── user_authenticator_service.py # 用户认证器 │ │ ├── client_verifier_service.py # 客户端验证器 │ │ ├── axiom_principal_enhancer.py # Principal增强器 │ │ └── axiom_token_enhancer.py # Token增强器 │ ├── common/ # 通用基础类 │ │ ├── __init__.py │ │ ├── base_mapper.py # 基础Mapper(数据权限拦截) │ │ └── base_model.py # 基础Model(创建人/更新人) │ └── system/ # 系统管理模块 │ ├── __init__.py │ ├── constants/ # 常量定义 │ ├── controller/ # 控制器 │ ├── enums/ # 枚举定义 │ ├── interceptors/ # 拦截器 │ ├── mapper/ # 数据映射器 │ ├── models/ # 数据模型 │ │ ├── api_models/ # VO/DTO │ │ └── *.py # ORM模型 │ └── service/ # 业务服务 ├── sql/ │ └── mysql/ │ └── system/ # 系统管理SQL脚本 ├── app.py # API 服务入口 ├── worker.py # 后台 Worker 入口 ├── manage.py # 开发管理工具 ├── requirements.txt # 依赖配置 ├── env.example # 环境变量示例 └── README.md ``` ## 默认账号 | 账号 | 密码 | 说明 | |------|------|------| | admin | admin123 | 超级管理员 | ## 技术栈 - **框架**: Axiom Boot 0.2.0 (基于 FastAPI) - **数据库**: MySQL 8.0+ / PostgreSQL 12+ - **缓存**: Redis - **认证**: OAuth 2.0 (密码模式) - **ORM**: SQLAlchemy 2.0 ## 注意事项 1. **Axiom Boot 框架**: 本项目依赖本地的 Axiom Boot 框架,请确保 `../../Axiom/axiom_boot` 路径正确 2. **数据库**: 请先创建数据库并执行初始化脚本 3. **Redis**: 如果不需要缓存功能,可以在 .env 中设置 `CACHE_ENABLED=false` ## 许可证 MIT License