ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Frappe框架完整指南:如何用DocType代替数据表搭建企业级Web应用

Frappe框架完整指南:如何用DocType代替数据表搭建企业级Web应用 Frappe框架完整指南如何用DocType代替数据表搭建企业级Web应用【免费下载链接】frappeLow code web framework for real world applications, in Python and Javascript项目地址: https://gitcode.com/GitHub_Trending/fr/frappe周一早上老板丢来一句话周五前设备报修进度要在电脑上能查。没有Frappe的话你要花两天建表、三天写接口、再两天做界面。而用Frappe在表单构建器里把字段拖进去数据库表、RESTful接口、列表页面会自动长出来——这就是这套Python低代码框架最直观的样子。从两个场景看懂Frappe的能力先看两个具体的活儿。场景一内部审批流。传统做法是建模状态机、写校验逻辑、再画界面一套流程下来两周起步。用Frappe则是给某个DocType文档类型可以理解为一张带业务规则的业务对象定义配一个工作流状态、转换条件、谁有权操作全部在界面上点选完成。场景二临时统计需求。以前给我一个各部门的汇总意味着新写一个报表页。现在打开报表构建器选字段、加筛选、绑图表几分钟交付不用动一行代码。这两类需求恰恰是企业系统里出现频率最高的部分。Frappe把这类重复劳动收进了框架里能力大致分三层数据层一切皆DocType意味着你定义一次业务对象就同时拿到数据表、管理界面和API不用三处分别维护。交互层内置Desk后台意味着表单、列表、看板这些通用界面开箱即用前端工作量只剩个性化部分。扩展层Python钩子与hooks机制意味着低代码不等于锁死配置覆盖不到的地方随时能插一段原生Python接管。上图是启动后的工作台左侧是功能导航中间按分类列出了框架自带的376个DocType比如Report、Workflow、Custom Field——这些本身就是低代码能力的组成部分。三步跑起一个Frappe站点如果你只想先看看效果走这条最短路径。git clone https://gitcode.com/GitHub_Trending/fr/frappe pip install frappe-bench bench init frappe-bench --frappe-path ./frappe cd frappe-bench bench new-site test.localhost --admin-password admin123 bench start浏览器打开http://localhost:8000预期看到登录页用Administrator/admin123进去就是上图的工作区。备选方案一句话带过想直接部署官方有配套的Docker仓库提供compose文件一条docker compose up -d起服务嫌麻烦也可以用官方托管的云方案自己不用碰服务器。拆解框架背后的三个机制DocType一张表如何变成一个完整的数据服务原理一句话DocType的元数据定义字段同名的Python控制器类负责行为。JSON里声明的每个字段对应数据库一列而.py控制器里的validate、before_save等钩子在保存前后自动执行。上图是一张ToDo单据的表单视图状态、优先级、截止日期是DocType定义的字段右侧的Assigned To、Attachments是框架按字段类型自动附带的区块。你只需要关心字段本身录入校验、权限过滤、审计日志都由框架兜底。什么时候你会需要它几乎所有场景。Frappe里的每条数据本质上都是某类DocType的一个实例理解了它就理解了数据从哪来、往哪去。核心实现可以看 frappe/model/document.py保存、校验、事件触发都在这里。安全边界是怎么划的角色与字段权限权限模型很简单用户拿角色角色对DocType声明操作权操作权再细分到字段。角色权限管理器Role Permissions Manager里你可以看到ToDo这个DocType对不同角色分别勾选了Read、Write、Create、Delete还能打开Only If Creator限制用户只看自己建的单据——这就是字段级和记录级权限的叠加财务只能看金额、不能删单这类需求在这里就是几个勾选框。什么时候你会需要它只要系统里出现不同人看不同数据这一步就绕不过去建议建好DocType后第一件事就是配权限。数据怎么变成决策依据报表与仪表盘原理一句话报表构建器把任意DocType的字段变成可查询、可聚合、可绘图的数据源。选一个DocType挑要展示的列加筛选条件保存即得一个报表再套上图表就是仪表盘的一块。列表视图本身也支持按条件过滤和排序上图工作台里的每个DocType都能直接生成列表页。什么时候你会需要它当业务从能用走向要看数——比如领导要一张每周的汇总视图你不需要再排开发配置半小时交付。完整走一遍搭一个设备报修系统换一个和库存、订单都不沾边的场景按需求→建模→逻辑→验证四步走。需求维修工提交报修单工程师接单处理后更新状态管理员能随时看到所有待处理的单子且每个工程师只能看自己名下的单据。建模创建DocTypeRepair Request四个字段设备名称Data、故障描述Small Text、状态Select待处理/处理中/已完成、处理人Link指向User。全程在表单构建器里点选完成没有任何代码。逻辑控制器里加一条自动补全规则单据被标记完成时自动记下完成时间# Repair Request的控制器与DocType同名的.py文件 def before_save(self): if self.status Completed and not self.completed_on: self.completed_on frappe.now_datetime()验证表单里建一张单据状态切到已完成保存后completed_on自动填入切到列表视图按状态过滤待处理一目了然再到角色权限管理器给工程师角色勾上Only If Creator他刷新页面就只看见自己的单子。如果把这个场景扩大10倍——比如同时有几百张单据在流转——你会注意到报表构建器开始发挥作用不写一条SQL就能拉出每位工程师的平均处理时长。跑起来之后往哪深入想搞懂CRUD的完整生命周期通读 frappe/model/document.py保存、校验、事件钩子的全部入口都在这个文件里适合打算做二开的人。想开发自己的应用先看 hooks.md 了解全部扩展点清单再翻 frappe/core/doctype/ 下的真实DocType定义当范本。想系统学习官方文档站点覆盖从安装到进阶的完整内容配套的Frappe School有维护者主讲的免费课程。遇到问题去社区讨论论坛发帖核心维护者常年在线响应很快。回到开头那个周一早上的需求设备报修进度、电脑上能查。在Frappe里它不再是表、接口、界面三件分离的活而是同一份DocType元数据的三次投影。下一步动作把仓库克隆下来跑通bench new-site和bench start然后在表单构建器里建一个你每天真实要用的DocType——比如待办跟进从第一个字段开始搭。【免费下载链接】frappeLow code web framework for real world applications, in Python and Javascript项目地址: https://gitcode.com/GitHub_Trending/fr/frappe创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表