# python_ai_starter **Repository Path**: justdoitwork/python_ai_starter ## Basic Information - **Project Name**: python_ai_starter - **Description**: python etl code api starter - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-01 - **Last Updated**: 2026-02-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FastAPI 低代码 API 开发平台 [![FastAPI](https://img.shields.io/badge/FastAPI-0.104.1-009688.svg?style=flat&logo=fastapi&logoColor=white)](https://fastapi.tiangolo.com) [![SQLAlchemy](https://img.shields.io/badge/SQLAlchemy-2.0.23-red.svg?style=flat&logo=sqlalchemy&logoColor=white)](https://www.sqlalchemy.org) [![Python](https://img.shields.io/badge/Python-3.9+-3776AB.svg?style=flat&logo=python&logoColor=white)](https://www.python.org) ## 📖 项目简介 **FastAPI 低代码 API 开发平台** 是一个面向数据分析师、后端开发工程师及企业内部开发者的轻量级平台。它旨在降低 API 开发门槛,打通“Python 代码编写 → 数据源对接 → API 生成 → 发布 → 调试”的全流程。 用户无需配置复杂的本地环境,即可在线编写 Python 代码,实时运行调试,并一键将代码发布为标准的 RESTful API 接口。 ### 核心价值 * **低代码开发**:聚焦业务逻辑,无需关心底层框架与部署。 * **实时调试**:在线代码编辑器,支持沙箱隔离运行,安全高效。 * **多数据源**:一键连接 MySQL, PostgreSQL, Redis 等主流数据源。 * **平滑切换**:Demo 环境使用 SQLite 快速验证,生产环境无缝切换 PostgreSQL。 --- ## 🚀 核心功能 ### 1. 在线 Python 代码编辑器 * **语法支持**:Python 3.8+ 语法高亮、自动补全、代码格式化。 * **沙箱运行**:基于进程/容器隔离的沙箱环境,限制 CPU/内存使用,防止恶意代码。 * **依赖管理**:内置 Pandas, Numpy, Requests 等常用库,支持自定义安装。 ### 2. 多数据源管理 * **支持类型**: * 关系型:MySQL, PostgreSQL, Oracle, SQL Server * NoSQL:MongoDB, Redis * 文件:CSV, Excel, JSON * **安全连接**:连接信息加密存储,支持连接测试。 ### 3. API 快速生成与发布 * **自动路由**:解析 Python 函数参数,自动生成 FastAPI 路由 (Query/Body/Path)。 * **生命周期**:支持 API 版本控制、环境区分 (Test/Prod)、发布审核、下线管理。 ### 4. 在线调试 * **交互式调试**:自动生成调试表单,支持 GET/POST/PUT/DELETE 请求。 * **日志记录**:完整记录请求参数、响应结果、执行耗时,支持历史回溯。 ### 5. 权限管理 * **RBAC 模型**:细粒度的用户角色控制(超级管理员、普通用户、只读用户)。 * **资源隔离**:用户仅可访问被授权的数据源和代码片段。 --- ## 🛠 技术架构 ### 整体架构设计 ```mermaid graph TD A[前端层:Vue/React] --> B[后端层:FastAPI] B --> C1[代码运行模块:沙箱隔离+Python解释器] B --> C2[数据源模块:多驱动适配+加密存储] B --> C3[API生成模块:自动路由+OpenAPI规范] B --> C4[权限模块:JWT鉴权+RBAC] C1 --> D[存储层:代码片段/运行日志] C2 --> D[存储层:数据源配置(加密)] C3 --> D[存储层:API配置/版本] C4 --> D[存储层:用户/角色/权限] ``` ### 业务流程 ```mermaid graph LR A[用户登录] --> B[在线编写Python代码] B --> C[连接数据源(可选)] C --> D[测试运行代码(查看输出/调试)] D --> E[生成API(配置路径/方法/参数)] E --> F[在线调试API(填写参数→发送请求→查看响应)] F --> G[发布API(测试/生产环境)] G --> H[API管理(查看/修改/下线)] ``` ### 数据库选型与适配 本项目采用 **SQLAlchemy ORM** 实现数据库层解耦,支持多环境平滑切换: * **Demo/开发环境**:使用 **SQLite**。无需部署,文件型数据库,快速验证功能。 * **测试/生产环境**:使用 **PostgreSQL**。支持高并发、事务、JSONB 类型,满足企业级需求。 --- ## 💻 快速开始 ### 1. 环境准备 * **Python 3.9+** * **Git** * *(可选)* 推荐使用虚拟环境管理依赖 ### 2. 克隆项目 ```bash git clone cd python_ai_starter ``` ### 3. 创建并激活虚拟环境 (推荐) ```bash python -m venv venv source venv/bin/activate # macOS/Linux # venv\Scripts\activate # Windows ``` ### 4. 安装依赖 ```bash # 安装基础依赖 (Demo环境 - SQLite) pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple # (可选) 如果需要连接 PostgreSQL (生产环境),请执行: # pip install -r requirements-prod.txt -i https://pypi.tuna.tsinghua.edu.cn/simple ``` ### 5. 配置环境变量 复制 `.env.example` 为 `.env`: ```bash cp .env.example .env ``` 根据需要修改 `.env` 中的配置(默认 Demo 环境使用 SQLite,开箱即用)。 ### 6. 初始化数据库 ```bash python3 init_db.py ``` ### 7. 启动服务 ```bash uvicorn app.main:app --reload --host 0.0.0.0 --port 8000 ``` * **API 文档 (Swagger UI)**: http://localhost:8000/docs * **API 文档 (ReDoc)**: http://localhost:8000/redoc ### 8. 代码检查 (开发模式) 本项目配置了 `ruff` 进行代码规范检查: ```bash ruff check . # 检查代码 ruff format . # 格式化代码 ``` --- ## 📂 项目结构规范 ``` fastapi-sandbox/ ├── .env # 环境变量配置 ├── alembic/ # 数据库迁移脚本 ├── app/ │ ├── __init__.py │ ├── config/ # 全局配置 │ │ └── settings.py # 环境与应用配置 │ ├── crud/ # 数据库 CRUD 操作 │ ├── db/ # 数据库连接与 Session 管理 │ ├── models/ # SQLAlchemy ORM 模型 │ ├── routers/ # API 路由模块 │ ├── schemas/ # Pydantic 数据模型 │ ├── sandbox/ # 沙箱核心模块 │ │ ├── executor.py # 代码执行器 │ │ ├── isolator.py # 隔离逻辑 │ │ └── resource.py # 资源限制 │ └── main.py # 应用入口 ├── init_db.py # 数据库初始化脚本 ├── requirements.txt # 项目依赖 └── tests/ # 单元测试 ``` --- ## 🛡 开发与安全规范 ### 代码规范 * **风格**:遵循 PEP 8 规范,使用 `black` 或 `ruff` 进行格式化。 * **类型提示**:所有函数参数和返回值必须包含 Type Hints。 * **错误处理**:使用 FastAPI 的 `HTTPException` 抛出标准错误,禁止直接返回 500。 ### 安全规范 1. **沙箱隔离**: * 禁止用户代码访问宿主机网络和敏感文件系统。 * 通过 `resource` 模块严格限制 CPU 和内存使用。 * 生产环境建议使用 Docker 容器级隔离。 2. **数据安全**: * 数据源密码等敏感信息必须加密存储(AES)。 * API 接口必须启用 Token 鉴权。 * 防止 SQL 注入(使用 ORM)和 XSS 攻击。 ### 数据库规范 * **模型设计**:所有表必须包含 `create_time` 和 `update_time`。 * **迁移管理**:使用 Alembic 管理数据库变更,禁止直接修改生产库表结构。 * **环境隔离**:开发环境严禁连接生产数据库。 --- ## 📅 上线计划 | 阶段 | 周期 | 核心交付内容 | | :--- | :--- | :--- | | **MVP** | 4周 | 基础代码编辑器 + 沙箱运行 + SQLite 支持 + 简单 API 生成 | | **迭代1** | 2周 | 新增 Redis/MongoDB 支持 + 断点调试 + API 版本控制 | | **迭代2** | 2周 | 第三方库自定义安装 + 发布审核流程 + OpenAPI 导出 | --- ## 📝 验收标准 1. **代码运行**:输入 `print("hello world")`,3秒内返回结果。 2. **数据连接**:MySQL/PostgreSQL 连接测试 1秒内响应成功。 3. **API生成**:编写函数后自动生成路由,且支持参数传递。 4. **安全拦截**:运行 `os.system("rm -rf /")` 被沙箱拦截并警告。