项目简介
本项目是基于FastAPI框架搭建的桌面管理系统。集成Pydantic保障数据验证和类型安全,利用SQLAlchemy进行数据库操作,通过Dynaconf完成配置管理。系统包含用户管理、桌面管理、日志管理、数据库迁移、异常处理以及API测试等模块,能为用户提供创建、查询、更新和删除桌面等功能。
项目的主要特性和功能
- 用户管理:支持用户的增、查、改、删操作及信息查询修改。
- 桌面管理:实现桌面基本信息与状态管理,可进行桌面的增、查、改、删。
- 日志管理:记录操作详细信息、时间戳、用户信息和操作结果等,支持日志查询与记录。
- 数据库迁移:利用Alembic库进行数据库结构变更和版本控制。
- 异常处理:定义多个自定义异常类处理特定错误,如身份验证失败、资源未找到等。
- API测试:提供测试脚本确保API端点功能稳定正确。
- OpenAPI支持:集成自动化文档功能,基于pydantic定义接口生成swagger JSON定义文档,结合Swagger UI和ReDoc提供交互式API文档。
- 雪花算法生成唯一ID:使用雪花算法生成分布式唯一ID,处理时间回拨等问题。
- 上下文管理:使用
contextvars
管理request请求的上下文环境变量,方便log追踪。 - 逻辑分层清晰:采用分层架构,包括schema层、API层、业务层和数据/模型层,实现逻辑隔离,便于开发维护。
- 异步数据库操作:支持异步数据库操作,提升系统性能。
安装使用步骤
1. Python环境准备
- 安装依赖:
apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev libjpeg-dev zlib1g-dev cronolog rsyslog logrotate
- 下载Python源码:
wget https://www.python.org/ftp/python/3.10.12/Python-3.10.12.tgz
- 解压源码:
tar -xf Python-3.10.12.tgz
- 配置:
cd Python-3.10.12 && ./configure --enable-optimizations prefix=/usr/local/python310
- 编译:
make -j 4
- 安装:
make install
- 验证安装:
/usr/local/python310/bin/python3 -V
- 修改
pyproject.toml
,设置Python版本:toml [tool.poetry.dependencies] python = "~3.10.12"
2. 安装Poetry
官方脚本安装
- 执行安装命令:
curl -sSL https://install.python-poetry.org | /usr/local/python310/bin/python3 -
- 修改环境变量:根据安装输出,修改
bashrc
或者profile
,增加export PATH="/root/.local/bin:$PATH"
- 验证安装:
poetry -V
pip安装
shell
python3 -m venv /opt/pyenv/eojo
/opt/pyenv/eojo/bin/pip install -U pip setuptools
/opt/pyenv/eojo/bin/pip install poetry
记得修改PATH
,以便直接访问poetry
。
3. 安装项目依赖
执行poetry install
下载安装依赖。
4. 配置文件管理
- 添加
dynaconf
依赖:poetry add dynaconf
- 初始化
dynaconf
:在项目应用目录下运行dynaconf init
,生成config.py
、.secrets.toml
和settings.toml
文件。 - 项目引入设置: ```python from dynaconf import Dynaconf
settings = Dynaconf( envvar_prefix="DYNACONF", settings_files=['./eojo/conf/settings.toml', '/etc/eojo/settings.toml'], ) ```
5. 数据库版本管理
- 配置文件位于
{PROJECT_NAME}/db/migrations/alembic.ini
,修改sqlalchemy.url
配置项。 - 修改
alembic
的env.py
文件,设置db url
为项目配置文件中设置的url
:python def run_migrations_online(): connectable = engine_from_config( {"sqlalchemy.url": settings.db.url}, # 使用dynaconf文件的配置替换alembic.ini的配置 prefix='sqlalchemy.', poolclass=pool.NullPool)
- 生成增量版本:
alembic revision --autogenerate -m "2.0.3"
- 升级到最新版本:
alembic upgrade head
6. 启动项目
完成上述步骤后,即可启动项目。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】