脚本 API

在 Frappe 框架的服务器脚本、打印格式和脚本报表中可以调用的受限命令列表

注意: 这仅适用于应用内脚本。如果您需要更多功能,您必须创建一个“应用程序”并在 Python 模块中编写事件处理程序

Python 模块

以下 Python 模块可用

json

Python 标准模块 json

格式化

_(翻译)

翻译一个字符串

示例:_("This is translatable")

frappe.format

根据数据类型格式化一个值

示例:frappe.format_value(value, dict(fieldtype='Currency'))

frappe.date_format

格式化为默认日期格式

frappe.format_date

返回日期如“2019年9月1日”

会话

frappe.form_dict

表单/请求参数

示例:请求参数 /page?name="test" 可以通过 frappe.form_dict.name 访问

frappe.request

请求对象

frappe.response

响应对象

frappe.session.user

当前用户

frappe.session.csrf_token

当前会话的 CSRF 令牌

frappe.user

当前用户

frappe.get_fullname

返回当前用户的全名

frappe.get_gravatar

从 frappe.utils.get_gravatar_url 获取用户显示图像

frappe.full_name

当前用户的全名

文档(ORM)

文档访问和编辑

frappe.get_meta

获取元数据对象

frappe.new_doc

创建一个新的文档记录。

frappe.get_doc

获取文档。您还可以保存或执行文档公开的任何方法。

示例:frappe.get_doc("User", frappe.session.user)

frappe.get_last_doc

获取特定 DocType 的最后一条文档,可带有一组给定的过滤器。默认为最后创建的。

示例:frappe.get_last_doc("User", filters={"name": ("like", "%@apple.com")})

frappe.get_cached_doc

获取文档(或缓存的)

frappe.get_mapped_doc

frappe.rename_doc

frappe.delete_doc

frappe.get_system_settings

获取系统默认设置

数据库

数据库访问 API

frappe.db.get_list

获取由当前用户权限过滤的记录列表

示例:frappe.db.get_list("Customer") 将返回客户列表

frappe.db.get_all

获取所有记录的列表

frappe.db.sql

运行一个 SELECT 查询

示例:frappe.db.sql("select name from Customer where name like 'm%'")

frappe.db.get_value

从记录中获取一个值

示例:frappe.db.get_value("User", frappe.session.user, "first_name")

frappe.db.get_single_value

从单类型文档中获取值

示例:frappe.db.get_single_value("System Settings", "default_currency")

frappe.db.get_default

获取默认值

frappe.db.escape

清理数据库查询的值以防止 SQL 注入

frappe.db.set_value

设置一个值

frappe.db.exists

检查文档是否存在。如果存在则返回文档的 name,否则返回 None。

frappe.db.commit

允许用户在服务器脚本(如自定义调度器脚本)中进行显式提交。
注意:这在任何 DocType 事件服务器脚本中都不起作用

frappe.db.rollback

允许用户通过服务器脚本回滚更改。
注意:这在任何 DocType 事件服务器脚本中都不起作用

查询构建器

frappe.qb

用于运行 SELECT 查询的查询构建器 API。

示例:frappe.qb.from_("Task").select("*").run()

实用工具

实用方法和函数

run_script

运行一个服务器脚本(返回值在 frappe.flags 中)

frappe.msgprint

在服务器端作为响应的一部分显示一个模态框。

示例:frappe.msgprint("Hello")

frappe.get_hooks

获取应用程序钩子

frappe.utils

frappe.utils 中的方法

frappe.render_template

渲染一个 Jinja 模板

frappe.get_url

通过 frappe.utils.get_url 获取当前站点的 URL

socketio_port

socketio 的端口

style.border_color

返回 ‘#d1d8dd’

guess_mimetype

返回 mimetypes.guess_type

html2text

将 HTML 编码为文本(markdown)

dev_server

如果处于开发者模式则为 True

frappe.log_error

生成带有回溯的错误日志

FrappeClient

使用 requests 会话连接到 Frappe 站点

API

从 Frappe 发起外部 API 调用。

frappe.make_get_request

发起一个 GET 请求。

示例:frappe.make_get_request('https://example.com')

frappe.make_post_request

发起一个 POST 请求。

示例:frappe.make_post_request('https://example.com', data={'username: 'test'})

frappe.make_put_request

发起一个 PUT 请求。

示例:frappe.make_put_request('https://example.com', headers={'Auth': 'Bearer xyz'})

邮件

frappe.sendmail

发送一封邮件。请参阅文档

示例:frappe.sendmail(recipients=['[email protected]'], sender='[email protected]', subject='My Subject', message='<p>Hello</p>')