Script API

List of restricted commands that be called in Frappe Framework Server Script, Print Formats and Script Reports

Note: This is only applicable for in-app scripting. If you want more features, you will have to create an "Application" and write the event handlers inside Python Modules

Python Modules

Following python modules are available

json

Python standard module json

Formatting

_ (Translate)

Translate a string

Example: _("This is translatable")

frappe.format

Format a value based on its datatype

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

frappe.date_format

Format as default date format

frappe.format_date

Returns date as "1st September 2019"

Session

frappe.form_dict

Form / request parameters

Example: Request parameter /page?name="test" can be accesssed as frappe.form_dict.name

frappe.request

Request object

frappe.response

Response object

frappe.session.user

Current user

frappe.session.csrf_token

CSRF token of the current session

frappe.user

Current user

frappe.get_fullname

Returns fullname of the current user

frappe.get_gravatar

Gets the user display image from frappe.utils.get_gravatar_url

frappe.full_name

Fullname of the current user

Documents (ORM)

Document access and editing

frappe.get_meta

Get metadata object

frappe.new_doc

Create a new Document record.

frappe.get_doc

Get Document. You can also save or execute any method exposed by the document.

Example: frappe.get_doc("User", frappe.session.user)

frappe.get_last_doc

Get the last Document of a particular DocType with a given set of filters. Defaults to last created.

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

frappe.get_cached_doc

Get Document (or cached)

frappe.get_mapped_doc

frappe.rename_doc

frappe.delete_doc

frappe.get_system_settings

Get system default settings

Database

Database access API

frappe.db.get_list

Get list of record filtered by current user's permissions

Example: frappe.db.get_list("Customer") will return list of customers

frappe.db.get_all

Get list of all records

frappe.db.sql

Run a SELECT query

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

frappe.db.get_value

Get a value from a record

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

frappe.db.get_single_value

Get value from a single type document

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

frappe.db.get_default

Get default value

frappe.db.escape

Sanitize value for database queries to prevent SQL injection

frappe.db.set_value

Set a value

frappe.db.exists

Checks for existence of a document. Returns name of the document if exists else None .

frappe.db.commit

Allow users to make explicit commits in server scripts like custom scheduler scripts.
Note: This won't work in any DocType Event server scripts

frappe.db.rollback

Allow users to rollback changes via server scripts.
Note: This won't work in any DocType Event server scripts

Query Builder

frappe.qb

Query builder API to run SELECT queries.

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

Utilities

Utility methods and functions

run_script

Run a server script (return values in frappe.flags )

frappe.msgprint

Show a modal on the server side after as a part of the response.

Example: frappe.msgprint("Hello")

frappe.get_hooks

Get application hooks

frappe.utils

Methods in frappe.utils

frappe.render_template

Render a Jinja template

frappe.get_url

Get url of the current site via frappe.utils.get_url

socketio_port

Port for socketio

style.border_color

Returns '#d1d8dd'

guess_mimetype

Returns mimetypes.guess_type

html2text

Encode HTML as text (markdown)

dev_server

True if in developer mode

frappe.log_error

Generate Error Log with a traceback

FrappeClient

Connect to a Frappe site using a requests session

API

Make external API calls from Frappe.

frappe.make_get_request

Make a GET request.

Example: frappe.make_get_request('https://example.com')

frappe.make_post_request

Make a POST request.

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

frappe.make_put_request

Make a PUT request.

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

Email

frappe.sendmail

Send an email. See docs

Example: frappe.sendmail(recipients=['test@example.com'], sender='sender@example.com', subject='My Subject', message='<p>Hello</p>')

On this page