目录

Pgtools - 教学与开发实践辅助平台

License

Pgtools是一个基于低代码编程理念,支持插件的可扩展代码生成平台。主要用于生成C/S架构的应用程序框架,支持快速开发教学和实践项目。

主要特性

  • 🚀 快速生成应用框架:一键生成完整的C/S架构应用框架
  • 🔌 插件系统:支持通过插件扩展功能,已有数据库、网络传输、加密等插件
  • 🛠️ 代码生成:基于Jinja2模板系统生成代码
  • 💾 数据库管理:内置SQLite数据库管理工具
  • 🖥️ GUI支持:集成PyQt5界面生成工具
  • 📦 模块化设计:清晰的模块划分,便于扩展和维护
  • 🐍 交互式环境:集成基于QtConsole的Python交互环境,提供便捷操作按钮

系统要求

  • Python 3.8+
  • PyQt5 5.15+

安装指南

安装方法

  1. 下载安装包

软件包发布仓库

  1. 使用pip安装:
    pip install pgtools-3.5.0-py3-none-any.whl

快速开始

创建新项目

pgtools create myapp .

这将生成一个包含以下结构的应用框架:

myapp/
├── db/          # 数据库模块
├── transfer/    # 网络传输模块
├── server/      # 服务端业务实现
├── client/      # 客户端实现
├── smain.py     # 服务端入口
└── cmain.py     # 客户端入口

初始化数据库

python myapp/smain.py dbinit

启动服务端

python myapp/smain.py

启动客户端

python myapp/cmain.py

插件系统

Pgtools支持通过插件扩展功能,当前内置插件包括:

  • db: 数据库功能包,提供SQLite数据库管理功能
  • transfer: 基于xmlrpc的网络RPC功能包
  • server: 服务端功能包,处理业务逻辑
  • client: PyQt5界面功能包,提供GUI支持
  • encryption: 加密服务包,提供数据加密功能
  • charts: 绘图功能包,基于ECharts的图表绘制

激活插件

默认激活的插件在配置文件中定义,可以通过修改pgtools/cfgs/pgtools.toml中的activate_plugins列表来控制哪些插件被激活。

创建自定义插件

  1. pgtools/plugins/目录下创建新插件目录
  2. 创建插件配置文件config.toml定义依赖关系和同步文件
  3. 实现插件功能
  4. __init__.py中注册插件命令和动作

图形界面工具

qttools

生成基于PyQt5的界面程序:

qttools

dbtools

SQLite数据库管理工具:

dbtools

pggui

综合管理工具(教学版专有):

pgtools-gui

qtconsole

Python交互环境工具,提供便捷操作按钮:

# 通过pggui访问,在"Python交互环境"选项卡中使用

该工具基于QtConsole开发,提供了一个交互式的Python环境,支持:

  • 直接在控制台中输入和执行Python代码
  • 通过配置文件自定义快捷操作按钮
  • 一键更改工作目录
  • 预定义命令按钮,点击即可执行相应的Python语句序列

项目结构

pgtools/
├── cfgs/           # 配置文件目录
├── extend/         # 扩展模块
├── gui/            # GUI组件目录
│   ├── qtconsole_widget.py  # QtConsole交互环境组件
│   └── ...         # 其他GUI组件
├── plugins/        # 插件系统目录
├── res/            # 资源文件
├── templates/      # 代码生成模板
├── main.py         # 主程序入口
├── plugin.py       # 插件管理系统
├── pgcopy.py       # 代码生成核心
└── ...

版本信息

当前版本:3.5.0

开源协议

本项目采用Apache 2.0许可证,详见LICENSE文件。

邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号