# Flask_Sqlachemy_RESTfulAPI_Codegen **Repository Path**: burgerpengbo/Flask_Sqlachemy_RESTfulAPI_Codegen ## Basic Information - **Project Name**: Flask_Sqlachemy_RESTfulAPI_Codegen - **Description**: Python代码自动化生成项目 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: release - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 17 - **Created**: 2021-09-30 - **Last Updated**: 2023-11-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ##### 项目说明: Flask_Sqlachemy_RESTfulAPI_Codegen 一个根据数据库表结构,自动生成Python基于Flask+sqlalchemy框架的接口项目,所生成的接口符合restful风格规范; 本项目实体层基于flask-sqlacodegen工具生成,控制层和资源层以及服务层代码,基于自定义代码模板生成; ##### 生成的目标接口项目特点: ![输入图片说明](https://images.gitee.com/uploads/images/2021/0905/200245_9c40fbe9_9201274.png "屏幕截图.png") 1. 项目架构满足分层设计规范,分为实体层,控制器层和资源层(接口层), 用户可以添加服务层,作为商业逻辑层; 2. 资源层(接口层),生成了满足restful风格规范的接口,发布后,可以直接让前端调用; 生产环境中,用户可以自行扩展接口层,对接新增加的服务层(具体商业逻辑)代码; 3. 项目定位于先有数据库设计和关系,后基于这些关系生成对象和实体及各层的代码; 4. 目标项目包含基于Docker容器的部署脚本; ##### 目标项目详细目录: └── api.sqlcodegen.com ├── app # 项目初始化文件夹 │ ├── __init__.py │ └── setting.py ├── config # 项目配置 │ └── config.conf ├── models # 实体层 -- 数据表对应的实体 │ └── userInfoModel.py ├── controller # 控制器层 -- 负责表记录的增删改查 │ └── userInfoController.py ├── service # 业务层 -- 负责项目主要业务逻辑的编写 │ └── userInfoService.py ├── api_1_1 # 资源层 -- 负责对外暴露接口 │ ├── apiVersionResource │ │ ├── apiVersionResource.py │ │ ├── __init__.py │ │ └── urls.py │ └── userInfoResource │ ├── __init__.py │ ├── urls.py │ ├── userInfoOtherResource.py │ └── userInfoResource.py ├── deploy # 项目部署的配置文件 │ ├── gunicorn.conf │ ├── nginx_flask.conf │ └── supervisord.conf ├── common ├── docker-compose.yml ├── dockerfile ├── gunicorn.py ├── manage.py ├── requirements.txt └── utils # 常用方法工具包 ├── commons.py ├── loggings.py ├── response_code.py └── rsa_encryption_decryption.py 产品特性 * Supports SQLAlchemy 0.8.x - 1.3.x * 支持SQLAlchemy 0.8x - 1.3x * Produces declarative code that almost looks like it was hand written * 生成的声明性代码几乎看起来像是手写的 * Produces `PEP 8`_ compliant code * 生成的代码符合 `PEP 8`_规范 * Accurately determines relationships, including many-to-many, one-to-one * 准确判断包括多对多与一对一的关系 * Automatically detects joined table inheritance * 自动检测连接表继承 * Excellent test coverage * 出色的测试覆盖率 ##### 生成器项目的使用说明: 一 数据库表设计(三"必须"三"推荐") 1. 数据库表名称必须全小写,可使用"_"连接。如:user_info; 2. 必须包含名称为"AutoID"的自增主键; 3. 表的名称和表字段名称必须不是python的关键字。如:def,False都是不正确的 4. 表的字段名称推荐使用"大驼峰"命名法。如:UserName; 5. 推荐设计一个timestamp类型的"CreateTime"字段,默认为当前时间戳 6. 推荐设计一个tinyint类型的"IsDelete"字段,默认为0(注:如果生成器项目选择使用逻辑删除,则该字段为必须) 二 生成器项目使用 1. 先从仓库clone代码到本地; git clone https://gitee.com/ncepu-bj/Flask_Sqlachemy_RESTfulAPI_Codegen.git 2. 用Python开发工具(Pycharm或者vscode)打开项目; 3. 为代码生成器项目配置好虚拟环境;Pythond的版本>=3.8.0 4. 安装软件运行必须的包:pip install -r requirement.txt 5. 配置相关参数:启动`startUI.py`打开网页进行对应的参数进行设定(推荐),并点击生成代码 也可以选择使用`start.py`启动(注:启动前请配置好详情参数) 6. 程序运行完毕后,会生成dist文件夹,文件夹下面及为我们需要的目标项目; 也可以在配置文件中设置目标项目的位置; 三 目标项目测试 1. 用开发工具(Pycharm或者vscode)打开dist中的目标项目文件夹; 2. 为目标项目配置好虚拟环境;Pythond的版本>=3.8.0; 3. 安装软件运行必须的包:pip install -r requirement.txt; 4. 运行目标项目:python manage.py runserver; 5. 打开postman进行接口测试:http://127.0.0.1:5000/api_1_0/apiversion api_1_0为项目生成器中设置的版本号,如果配置参数为API_VERSION=1.0,则此时链接中的版本号字符串为:api_1_0; 6. 测试基本业务相关接口; 四 生成器项目详细使用指南 - 使用指南