---
title: "Ontwikkelaars"
space: "Frappe Framework"
url: "https://www.prilk.com/nl/docs/frappe-framework/ontwikkelaars"
updated: "2026-05-14"
---

## Ontwikkelaars

Frappe-apps maken betekent Python + JavaScript + JSON schrijven. Het platform regelt frameworkzaken (auth, DB, UI-rendering, API); uw app levert de domeinlogica.

### App-structuur

```
my_app/
├── my_app/
│   ├── hooks.py           # Wire up doc_events, fixtures, web routes
│   ├── install.py         # after_install, after_migrate
│   ├── modules.txt
│   ├── my_module/
│   │   ├── doctype/       # Uw DocTypes (één map per stuk)
│   │   ├── custom/        # Hook-handlers voor DocTypes van andere apps
│   │   ├── report/
│   │   └── workspace/
│   └── public/            # JS, CSS, images
├── pyproject.toml
└── setup.py
```

### Belangrijke uitbreidingspunten (hooks.py)

| Hook | Gebruik |
|---|---|
| `doc_events` | Reageer op lifecycle-events van elk DocType (validate, on_submit, on_cancel) |
| `doctype_js` | Injecteer client-side scripts op specifieke DocType-formulieren |
| `scheduler_events` | Draai code op cron-schema's (uurlijks, dagelijks, custom cron) |
| `permission_query_conditions` | Filter lijstweergaven met eigen permissie-logica |
| `override_doctype_class` | Vervang de controller van een DocType door uw eigen |
| `fixtures` | Lever referentiedata mee (Rollen, Workspaces, Custom Fields) |

### DocType-lifecycle

```python
class MyDoc(Document):
	def before_insert(self): ...    # Voor eerste opslag
	def validate(self): ...          # Voor elke opslag
	def on_update(self): ...         # Na opslag
	def before_submit(self): ...     # Voor indienen
	def on_submit(self): ...         # Na indienen
	def on_cancel(self): ...         # Na annuleren
	def on_trash(self): ...          # Voor verwijdering
```

### Verder lezen

- Frappe developer docs: [frappeframework.com/docs](https://frappeframework.com/docs)
- Frappe source: [github.com/frappe/frappe](https://github.com/frappe/frappe)
- Frappe School (betaalde cursussen): [frappe.school](https://frappe.school)
