用途:在 ERPNext/Frappe v14–v16 中执行数据库操作时使用,提供从 ORM 到原始 SQL 的分层指引。
主要能力:文档增删改查(frappe.get_doc、new_doc、insert、save、delete_doc);读取(get_cached_doc、get_last_doc、db.get_value、get_single_value、get_list、get_all、exists、count);写入(db.set_value、doc.db_set、db.delete、db.truncate、v15+ 的 db.bulk_update);过滤操作符与 AND/OR 组合;原始 SQL(frappe.db.sql,必须参数化);查询构建器 frappe.qb(JOIN、聚合、OR 条件、walk/get_sql);缓存(文档缓存、Redis、@redis_cache);事务管理与 v15+ 事务钩子;SQL 注入防护;v14/v15/v16 版本差异。
使用方式:遵循 ORM > 数据库 API > 查询构建器 > 原始 SQL 的抽象层级。存在性检查用 frappe.db.exists,不要用 get_doc 加 try/except。原始 SQL 表名加反引号 tab 前缀,如 tabSales Invoice,并使用 %(param)s 占位符。列表查询必须分页并显式指定字段。
适用场景:Frappe/ERPNext 应用开发中的简单 CRUD、报表、批量处理与跨库查询。
限制:复杂查询(连接、聚合、子查询、跨库兼容)建议使用专门的查询构建器技能;原始 SQL 仅用于查询构建器无法表达的复杂场景。资料未提供安装命令、收费与平台信息。