htmforge.core.component
htmforge.core.component.Component(**data)
Bases: BaseModel, ABC
Abstrakte Basisklasse für wiederverwendbare UI-Komponenten.
Subklassen deklarieren typisierte Props als Pydantic-Felder und
implementieren die :meth:render-Methode, die ein
:class:~htmforge.core.element.Element zurückgibt.
Die Klasse aktiviert Pydantic-Features
validate_assignment = True: Props werden auch nach der Initialisierung validiert.arbitrary_types_allowed = True: Erlaubt Non-Pydantic-Typen wie DOM-Elemente als Felder.frozen = False: Komponenten sind per Default mutable.
Example
from htmforge.elements import div, p
class Card(Component): ... title: str ... body: str ... ... def render(self) -> Element: ... return div(p(self.title), p(self.body), cls="card") ... Card(title="Hallo", body="Welt").to_html() '
'Hallo
Welt
Initialisiert die Komponente und blockiert Klassen ohne render.
Source code in htmforge\core\component.py
__init_subclass__(**kwargs)
Validiert, dass Unterklassen eine konkrete render-Methode haben.
Source code in htmforge\core\component.py
__repr__()
Gibt eine lesbare Debug-Darstellung der Komponente zurueck.
Example
Card(title="Hi", body="World") Card(title='Hi', body='World')
Source code in htmforge\core\component.py
htmx_attrs()
Gibt alle gesetzten HTMX-Props als Attribut-Dict zurueck.
Returns:
| Type | Description |
|---|---|
dict[str, object]
|
Ein Dict mit nur den HTMX-Attributen, die nicht |
Example
button("Save", **self.htmx_attrs())
Source code in htmforge\core\component.py
render()
abstractmethod
Rendert die Komponente zu einem :class:~htmforge.core.element.Element.
Subklassen müssen diese Methode implementieren und das Root-Element der Komponente zurückgeben.
Returns:
| Type | Description |
|---|---|
Element
|
Das Root-:class: |
Source code in htmforge\core\component.py
to_django()
Gibt eine Django-kompatible HttpResponse zurück.
Note
Erfordert django als optionale Dependency.
Returns:
| Type | Description |
|---|---|
Any
|
Eine |
Raises:
| Type | Description |
|---|---|
ImportError
|
Wenn |
Source code in htmforge\core\component.py
to_fastapi()
Gibt eine FastAPI-kompatible HTMLResponse zurück.
Note
Erfordert fastapi als optionale Dependency.
Returns:
| Type | Description |
|---|---|
Any
|
Eine |
Raises:
| Type | Description |
|---|---|
ImportError
|
Wenn |
Source code in htmforge\core\component.py
to_flask()
Gibt eine Flask-kompatible Response zurück.
Note
Erfordert flask als optionale Dependency.
Returns:
| Type | Description |
|---|---|
Any
|
Eine |
Raises:
| Type | Description |
|---|---|
ImportError
|
Wenn |
Source code in htmforge\core\component.py
to_html()
Delegiert das HTML-Rendering an :meth:render.
Returns:
| Type | Description |
|---|---|
str
|
Den vollständigen HTML-String der Komponente. |