Frappe 入门:把一套业务单据从建模到上线压缩到一天
【免费下载链接】frappeLow code web framework for real world applications, in Python and Javascript项目地址: https://gitcode.com/GitHub_Trending/fr/frappe
Frappe(Frappe Framework)是一个用 Python 和 JavaScript 编写的低代码 Web 框架,定位是给真实业务做后端系统用的。读完全文,你会知道 Frappe 怎么用:从克隆仓库到跑起站点,再到用 DocType 建出自己的第一张业务单据和第一套权限。
它替你省掉了哪些活
- DocType 建模—— 定义一次,直接拿到数据表、API 和管理界面
- 表单构建器—— 拖拽改字段布局,省掉手写前端
- 角色权限管理器—— 按角色勾选读、写、删权限,不用写访问控制代码
- 工作流引擎—— 配好状态和转换条件,审批流不用自己搭状态机
- 自动 REST API—— 建完数据表就能直接 HTTP 读写,前后端联调不等人
- 报表与仪表盘—— 列表、图表、数字卡拼装成监控页,省掉图表库集成
从克隆到跑通:最短路径
- 克隆仓库:
git clone https://gitcode.com/GitHub_Trending/fr/frappe cd frappe- 拉起容器环境(依赖 docker 与 docker compose):
docker compose -f pwd.yml up -d - 建第一个站点:
bench new-site your-site.com - 浏览器打开站点地址,用默认管理员账号登录
看到带侧边栏的工作台界面,说明 Frappe 环境已经就绪。
核心机制深潜
DocType:把表结构、API、界面一次生成
DocType 是 Frappe 的数据建模原子,一个 DocType 对应一份 JSON 定义加一个 Python 文件,保存后自动生成数据库表、REST API 端点和后台管理界面。字段、Link 关联、校验、编号规则都写在这份定义里,改完即重建,不存在模型、接口、页面三处代码各写一遍的问题。定义参考:frappe/core/doctype/doctype/doctype.py。
角色权限:权限是一份可编辑的数据,不是代码
Frappe 把权限做成独立数据,在 Role Permissions Manager 里按 DocType × 角色勾选 Read、Write、Create、Delete,还能限定"仅创建者可见"。权限保存后立即生效,REST API 调用同样受这套权限约束,细粒度控制不用改一行代码。
场景演练:拿它搭一个库存小系统
需求:商品和出入库两类单据,出库不能把库存扣成负数。
建模:新建Item与Stock Entry两个 DocType,后者用 Link 字段指向商品,Item上加一个stock_qty浮点字段。
逻辑:业务规则写进 Python 钩子,库存变化不靠手动维护:
def validate(self): item = frappe.get_doc("Item", self.item) if self.stock_entry_type == "入库": item.stock_qty += self.qty else: if item.stock_qty < self.qty: frappe.throw("库存不足") item.stock_qty -= self.qty item.save()验证:建一个商品,做一笔入库、再笔超额出库,第二条会直接报错,说明校验已经生效。
继续往下走
- 官方文档(安装、DocType 与权限配置):docs.frappe.io
- Frappe School:免费视频教程,frappe.io/school
- ERPNext:基于 Frappe 构建的开源 ERP,看真实项目怎么用它
Frappe 把一套业务单据从建模到上线压进一天的承诺,到这里就算兑现了一半。把仓库拉下来,按第 2 节的路径跑一遍,然后新建你自己的第一个 DocType。
【免费下载链接】frappeLow code web framework for real world applications, in Python and Javascript项目地址: https://gitcode.com/GitHub_Trending/fr/frappe
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考