readme 更新,新增接口 crud 代码自动生成用例
This commit is contained in:
parent
5d9801dbd7
commit
cde6b1b497
68
README.md
68
README.md
@ -21,10 +21,11 @@
|
|||||||
Kinit 是一套全部开源的快速开发平台,毫无保留给个人及企业免费使用。
|
Kinit 是一套全部开源的快速开发平台,毫无保留给个人及企业免费使用。
|
||||||
|
|
||||||
- 后端采用现代、快速(高性能) [FastAPI](https://fastapi.tiangolo.com/zh/) 异步框架 + 自动生成交互式API文档 + (强制类型约束)[Pydantic](https://docs.pydantic.dev/1.10/) + (高效率)[SQLAlchemy 2.0](https://docs.sqlalchemy.org/en/20/index.html);
|
- 后端采用现代、快速(高性能) [FastAPI](https://fastapi.tiangolo.com/zh/) 异步框架 + 自动生成交互式API文档 + (强制类型约束)[Pydantic](https://docs.pydantic.dev/1.10/) + (高效率)[SQLAlchemy 2.0](https://docs.sqlalchemy.org/en/20/index.html);
|
||||||
- PC端采用 [vue-element-plus-admin 2.2.0](https://gitee.com/kailong110120130/vue-element-plus-admin) 、[Vue3](https://cn.vuejs.org/guide/introduction.html)、[Element Plus](https://element-plus.gitee.io/zh-CN/guide/design.html)、[TypeScript](https://www.tslang.cn/)等主流技术开发;
|
- PC端采用 [vue-element-plus-admin](https://gitee.com/kailong110120130/vue-element-plus-admin) 、[Vue3](https://cn.vuejs.org/guide/introduction.html)、[Element Plus](https://element-plus.gitee.io/zh-CN/guide/design.html)、[TypeScript](https://www.tslang.cn/)等主流技术开发;
|
||||||
- 移动端采用 [uni-app](https://uniapp.dcloud.net.cn/component/),[Vue2](https://v2.cn.vuejs.org/v2/guide/),[uView 2](https://www.uviewui.com/components/intro.html)为主要技术开发;
|
- 移动端采用 [uni-app](https://uniapp.dcloud.net.cn/component/),[Vue2](https://v2.cn.vuejs.org/v2/guide/),[uView 2](https://www.uviewui.com/components/intro.html)为主要技术开发;
|
||||||
- 后端加入 [Typer](https://typer.tiangolo.com/) 命令行应用,简单化数据初始化,数据表模型迁移等操作;
|
- 后端加入 [Typer](https://typer.tiangolo.com/) 命令行应用,简单化数据初始化,数据表模型迁移等操作;
|
||||||
- 已加入定时任务功能,采用 [APScheduler](https://github.com/agronholm/apscheduler) 定时任务框架 + [Redis](https://redis.io/) 消息队列 + [MongoDB](https://www.mongodb.com/) 持久存储;
|
- 后端新加入根据配置的 ORM 模型,自动生成 CRUD 代码;
|
||||||
|
- 定时任务功能,采用 [APScheduler](https://github.com/agronholm/apscheduler) 定时任务框架 + [Redis](https://redis.io/) 消息队列 + [MongoDB](https://www.mongodb.com/) 持久存储;
|
||||||
- 权限认证使用[(哈希)密码和 JWT Bearer 令牌的 OAuth2](https://fastapi.tiangolo.com/zh/tutorial/security/oauth2-jwt/),支持多终端认证系统。
|
- 权限认证使用[(哈希)密码和 JWT Bearer 令牌的 OAuth2](https://fastapi.tiangolo.com/zh/tutorial/security/oauth2-jwt/),支持多终端认证系统。
|
||||||
- 支持加载动态权限菜单,多方式轻松权限控制,按钮级别权限控制。
|
- 支持加载动态权限菜单,多方式轻松权限控制,按钮级别权限控制。
|
||||||
- 已加入常见的 [MySQL](https://www.mysql.com/) + [MongoDB](https://www.mongodb.com/) + [Redis](https://redis.io/) 数据库异步操作。
|
- 已加入常见的 [MySQL](https://www.mysql.com/) + [MongoDB](https://www.mongodb.com/) + [Redis](https://redis.io/) 数据库异步操作。
|
||||||
@ -61,6 +62,63 @@ PC端演示地址:https://kinit.ktianc.top
|
|||||||
- 账号:15020221010
|
- 账号:15020221010
|
||||||
- 密码:kinit2022
|
- 密码:kinit2022
|
||||||
|
|
||||||
|
## 接口 CURD 代码自动生成
|
||||||
|
|
||||||
|
1. 目前只支持生成接口代码
|
||||||
|
2. 目前只支持使用脚本方式运行,后续会更新到页面操作
|
||||||
|
3. 代码是根据手动配置的 ORM 模型来生成的,支持参数同步,比如默认值,是否为空...
|
||||||
|
|
||||||
|
脚本文件地址:`scripts/crud_generate/main.py`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
该功能首先需要手动创建出 ORM 模型,然后会根据 ORM 模型依次创建代码,包括如下代码:
|
||||||
|
|
||||||
|
1. schema 序列化代码
|
||||||
|
|
||||||
|
schema 文件名称会使用设置的 en_name 名称,如果文件已经存在会先执行删除,再创建。
|
||||||
|
|
||||||
|
schema 代码内容生成完成后,同时会将新创建的 class 在 `__init__.py` 文件中导入。
|
||||||
|
|
||||||
|
2. dal 数据操作代码
|
||||||
|
|
||||||
|
dal 文件名称会使用默认的 `crud.py` 文件名称,目前不支持自定义。
|
||||||
|
|
||||||
|
如果 dal 文件已经存在,并且已经有代码内容,那么会将新的模型 dal class 追加到文件最后,并会合并文件内导入的 module。
|
||||||
|
|
||||||
|
3. param 请求参数代码
|
||||||
|
|
||||||
|
param 文件名取名方式与 schema 一致。
|
||||||
|
|
||||||
|
会创建出默认最简的 param class。
|
||||||
|
|
||||||
|
4. view 视图代码
|
||||||
|
|
||||||
|
view 文件名称同样会使用默认的 `view.py` 文件名称,目前不支持自定义。
|
||||||
|
|
||||||
|
如果 view 文件已经存在,与 dal 执行操作一致。
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
脚本中目前有两个方法:
|
||||||
|
|
||||||
|
```python
|
||||||
|
if __name__ == '__main__':
|
||||||
|
from apps.vadmin.auth.models import VadminUser
|
||||||
|
|
||||||
|
crud = CrudGenerate(VadminUser, "用户", "user")
|
||||||
|
# 只打印代码,不执行创建写入
|
||||||
|
crud.generate_codes()
|
||||||
|
# 创建并写入代码
|
||||||
|
crud.main()
|
||||||
|
```
|
||||||
|
|
||||||
|
目前不会去检测已有的代码,比如 `UserDal` 已经存在,还是会继续添加的。
|
||||||
|
|
||||||
|
<video src="https://ktianc.oss-cn-beijing.aliyuncs.com/kinit/public/videos/8832f2bc5da4bcacc8f472cfbee6f18f.mp4"></video>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## 源码地址
|
## 源码地址
|
||||||
|
|
||||||
gitee地址(主推):https://gitee.com/ktianc/kinit
|
gitee地址(主推):https://gitee.com/ktianc/kinit
|
||||||
@ -71,7 +129,9 @@ github地址:https://github.com/vvandk/kinit
|
|||||||
|
|
||||||
- [x] 菜单管理:配置系统菜单,操作权限,按钮权限标识、后端接口权限等。
|
- [x] 菜单管理:配置系统菜单,操作权限,按钮权限标识、后端接口权限等。
|
||||||
|
|
||||||
- [x] 角色管理:角色菜单权限分配。
|
- [x] 部门管理:支持无限层级部门配置。
|
||||||
|
|
||||||
|
- [x] 角色管理:角色菜单权限,角色部门权限分配。
|
||||||
|
|
||||||
- [x] 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
|
- [x] 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
|
||||||
|
|
||||||
@ -195,6 +255,7 @@ Redis (推荐使用最新稳定版)
|
|||||||
```python
|
```python
|
||||||
# 安全警告: 不要在生产中打开调试运行!
|
# 安全警告: 不要在生产中打开调试运行!
|
||||||
DEBUG = True # 如果当前为开发环境则改为 True,如果为生产环境则改为 False
|
DEBUG = True # 如果当前为开发环境则改为 True,如果为生产环境则改为 False
|
||||||
|
```
|
||||||
|
|
||||||
3. 修改项目数据库配置信息
|
3. 修改项目数据库配置信息
|
||||||
|
|
||||||
@ -242,6 +303,7 @@ Redis (推荐使用最新稳定版)
|
|||||||
# 文档:https://user.ip138.com/ip/doc
|
# 文档:https://user.ip138.com/ip/doc
|
||||||
IP_PARSE_ENABLE = True
|
IP_PARSE_ENABLE = True
|
||||||
IP_PARSE_TOKEN = "IP_PARSE_TOKEN"
|
IP_PARSE_TOKEN = "IP_PARSE_TOKEN"
|
||||||
|
```
|
||||||
|
|
||||||
4. 并在`alembic.ini`文件中配置数据库信息,用于数据库映射
|
4. 并在`alembic.ini`文件中配置数据库信息,用于数据库映射
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user