Ginthon是用Python+Web写的“视图窗口+稳定服务”的桌面端(Win、Mac、Linux)多功能程序基座。开箱即用但有一定上手门槛。
代码习惯无复杂继承和类。 ApacheV2 License。 Ginthon 基于 pywebview、flask 等。无 PyQT。ApacheV2 License。 GUI 前端默认 Svelte5运行于 Webview2、Webkit、WebKitGTK 中。 打包安装包体积在 55MB 左右RAM 占用 170MB 左右。 全静态可挂载其它语言程序编写的二进制子程序。提醒Python版基座请戳https://github.com/fyonecon/Ginthon Open CodeApacheV2 协议开源。Golang版基座请戳https://github.com/fyonecon/Waigo Closed Enterprise商业闭源。Go和Py的基座代码都是“功能对齐UI复用”的。Go和Py都是以“尽量‘返回默认值’代替‘抛出Error’”“尽量复用函数”“尽量不使用继承”“减少不必要的外部import”为原则。拉取仓库窗口及服务·主程序Ginthon-Maingit clone -b main https://github.com/fyonecon/Ginthon.git Ginthon-Main 然后将“GinthonDemo”关键词全局替换成你的项目名称即可成为你的应用名。开发环境运行项目#在dev环境默认展开consolebuild环境默认无console。python dev.py打包成桌面安装包.app、.exe、.deb等#底层使用 pyinstaller 打包。仅打包当前CPU类型操作系统类型的安装包。python build.py项目结构Py命名原则系统集文件夹名或文件名小写下划线自定义文件夹名小驼峰自定义函数小驼峰自定义变量小驼峰自定义接口名小写下划线Frontend命名原则函数及变量小写下划线引号双引号 使用优先于 单引号Ginthon-Main ├── build 打包运行时目录自动生成 ├── dist 程序打包文件目录自动生成。这里存放你打包后的app安装包 ├── docs 其它文档 │ └── README-Docs.md 项目原理说明 ├── flaskassets 软件内部的额外引用文件 │ ├── files 其它可网络访问的文件 │ └── html 额外的可暴露在外的web静态文件单页应用 ├── frontend 前端或静态文件 │ ├── tray 状态托盘二进制文件自动创建 │ └── view 前端视图默认SvelteKit │ ├── src 视图发开发文件 │ │ └── common 公共函数 │ │ └── pages 页面具体实现 │ │ └── parts 公用Svelte组件 │ │ └── stores 绑定数据管理 │ │ └── services 内置服务 │ │ └── routes 路由、layout、公共参数验证 │ ├── config.js 配置文件 │ ├── readme.md 前端操作记录与教程 │ └── static 静态文件 │ ├── appicon.png 应用Dock拦的icon │ ├── favicon.ico 网页默认icon │ ├── appicon.ico 网页默认icon │ ├── appicon.icns Mac应用图标 ├── internal 后段时间或py核心代码 │ ├── app 自定义的App功能 │ │ ├── flask Web控制器目录 │ │ ├── tray 状态栏托盘 │ │ └── window 窗口服务目录 │ │ ├── controller │ │ │ ├── do_events.py 操作窗口事件 │ │ │ ├── js_call_py.py js调用py对照表 │ │ │ ├── on_events.py 窗口运行事件 │ │ │ ├── py_run_js.py py调用js对照表 │ │ │ └── tray_events.py │ │ ├── window_route.py 窗口必要页面相关路由 │ │ └── window_view.py 窗口页面html代码 │ ├── bootstrap 框架加载核心 │ │ ├── app_auth.py 认证与密钥相关 │ │ ├── init_sys.py 检查系统及硬件 │ │ ├── init_window.py 窗口服务 │ │ ├── run_check_sys.py │ │ ├── run_flask.py Web服务 │ │ ├── run_tray.py 启动状态栏托盘 │ │ └── run_services.py 其它主页服务 │ ├── common 公共函数、封装的kit │ │ ├── kits 公共函数的Kit │ │ │ ├── _7z.py 7Z解压 │ │ │ ├── FILETYPE_DICT.py 各种文件对照表 │ │ │ ├── ICON.py 程序icon的二进制 │ │ │ ├── main_dirpath.py 虚拟路径 │ │ │ ├── secret_aes.py 对称加密 │ │ │ ├── shell.py PY运行shell │ │ │ ├── time_interval.py 定时器 │ │ │ ├── txt_data.py 简单的文件型数据库 │ │ │ ├── watch_pid.py │ │ │ └── watch_processes.py │ │ ├── func.py 公共函数 │ │ ├── request_data.go 公用处理Flask Input请求参数函数 │ │ └── translate.py 多语言翻译对照表 │ └── config.py 系统配置信息 │ ├── routes 自定义的路由 │ │ └── ...py │ ├── services 服务 │ │ ├── flask_middleware.py Web检测中间件 │ │ └── services_for_time_interval.py 定时器 ├── LICENSE ├── README.md 项目说明 ├── requirements-win.txt Win下的依赖 ├── requirements.txt 默认依赖 ├── build.json 打包程序的配置文件 ├── build.py 打包程序一键运行 ├── dev.json 开发环境运行的配置文件 ├── dev.py 开发环境一键运行 ├── ginthon_tray.py 状态栏托盘入口 ├── ginthon_tray.spec PYinstaller的SPEC打包文件参数 ├── ginthon_window.py 视窗主程序入口 └── ginthon_window.spec PYinstaller的SPEC打包文件参数其它原理请戳 ./docs/README-Docs.md 文档。