You built a working Library Management app: three DocTypes, a controller with
server-side validation, a form script, role permissions, a query report, and a
print format. From here you can go deeper into any part of the framework.
Build out the data model
- DocTypes Overview: the full data model, standard fields,
and special DocType kinds. - Fields: every field type and its key properties.
- Child Tables: rows embedded in a parent document, for
example a list of fines on a transaction. - Naming: all the ways the
nameprimary key gets generated. - Links and Actions: connect DocTypes and add document
actions.
Write more server-side logic
- Controllers and Lifecycle: the complete list
of lifecycle hooks, including submit, cancel and delete. - Document API: reading and writing documents in
code. - Querying Data and the
Query Builder: fetch and filter records. - Whitelisted Methods: expose Python functions
to the browser and the REST API. - Background Jobs: run slow work off the request,
for example sending overdue notices. - Hooks: plug into other apps' DocTypes and framework
events.
Do more on the client
- Form API: the full set of form events and
frm
methods. - Dialog API and Controls:
build custom dialogs and inputs. - Server Calls: call your whitelisted methods from
the browser.
Ship it
- REST API: read and write your data over HTTP.
- Testing: write tests for your controllers.
- Production Setup: deploy your app and site.
If you get stuck, the Frappe forum and the
source code are good places to look next.
Last updated 2 hours ago
Was this helpful?