HTML Snippets anstatt API+React (htmx)

Django, Flask, Bottle, WSGI, CGI…
Antworten
guettli
User
Beiträge: 4
Registriert: Montag 21. März 2011, 14:50
Wohnort: Chemnitz
Kontaktdaten:

Hallo,

ich nutze die Programmiersprache Python schon viele Jahre, und kann mich einfach nicht mit JavaScript
anfreunden.

Aktuell scheint der Trend zu sein mittels Python (und zB Django+DRF) eine http-API bereitzustellen,
und dann für die GUI zB React zu nehmen.

Mir ist das irgendwie zu kompliziert.

Durch Zufall habe ich vor kurzem diese Bibliothek gefunden:

https://htmx.org/

Hier ist das Konzept anders. Der Server sendet nicht JSON zum Client,
sondern HTML-Schnippsel. Das gefällt mir irgendwie besser.

Insbesondere die Formularvalidierung muss ich sowieso auf dem Server machen.
Also, warum sollte ich das einmal in Python, und dann nochmal in JS machen?

Gibt es neben htmx (was noch sehr jung ist) noch andere Tools, die mir helfen
mit Python eine moderne Web-GUI zu entwickeln?

Mit "modern" meine ich, dass komplette Page-Reloads (post/redirect/get Pattern) vermieden
werden.

Gruß,
Thomas
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Es hat einen Grund dass dieser Ansatz so ein Trend und modern ist. Du kannst Frontend und Backend nahezu komplett trennen. Daraus ergibt sich dass unterschiedliche Leute daran arbeiten können die viel weniger koordinieren müssen und dass wiederum macht es möglich dass insgesamt mehr Leute daran arbeiten können und man schneller Fortschritt macht. Deswegen ist auch "[...]kann mich einfach nicht mit JavaScript anfreunden." kein Problem. Im Gegenteil genau deswegen macht man sowas in Unternehmen. Deswegen ist der viel höhere Aufwand auch gar kein Problem, der gleicht sich durch die zusätzlichen Leute mehr als aus.

In Kontext eines kleinen Teams oder wenn man alleine arbeitet, ist diese Vorgehensweise bei weitem nicht so attraktiv. Man kann damit natürlich dazu lernen aber wenn dass nicht dein primäres Ziel ist, würde ich mir sehr gut überlegen ob es wirklich Sinn macht so vorzugehen oder ob es die "klassische" Django Web Anwendung nicht auch tut. Ein bisschen JS kann man später immer noch hinzufügen, an Stellen wo dies wirklich sinnvoll ist.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich habe kürzlich beruflich meine erste VUE.js Komponenten mit typescript erstellt. Und muss sagen, ich war sehr angetan (*) von der Erfahrung. Dank Typescript wird der sonst so nervtötende schreiben/F5/abkacken/von vorn Zyklus deutlich erträglicher. Die Möglichkeiten mit einem solch klar getrennten API +Anwendungsansatz sind wirklich beeindruckend. Und auch wenn es da Traditionalisten gibt (wie überall. Nur System V ist das wahre init 🥱), sie werden gerade im Webbereich überrollt werden. Da rein zu investieren ist in meinen Augen eine Fehlinvestition.

* das “aber” ist das ganze Tooling zu durchdringen. Das ist - wie fast überall, von Cargo in Rust vielleicht mal abgesehen - einfach immer schmerzhaft zu nutzen und zu durchdringen. Yarn oder Webpack oder pures NPM, etc.... aber es ist ja nicht so, als ob die gleichen Fragen nicht auch in Python vorkommen. pip, pipenv, pyenv, Setup.py vs requirements.txt und und und. Alles erklärlich aus Historie und Notwendigkeit, aber immer erstmal eine dicke Hürde für die uninitiierten Massen.
guettli
User
Beiträge: 4
Registriert: Montag 21. März 2011, 14:50
Wohnort: Chemnitz
Kontaktdaten:

__deets__ hat geschrieben: Samstag 29. August 2020, 12:21 Ich habe kürzlich beruflich meine erste VUE.js Komponenten mit typescript erstellt. Und muss sagen, ich war sehr angetan (*) von der Erfahrung. Dank Typescript wird der sonst so nervtötende schreiben/F5/abkacken/von vorn Zyklus deutlich erträglicher. Die Möglichkeiten mit einem solch klar getrennten API +Anwendungsansatz sind wirklich beeindruckend. Und auch wenn es da Traditionalisten gibt (wie überall. Nur System V ist das wahre init 🥱), sie werden gerade im Webbereich überrollt werden. Da rein zu investieren ist in meinen Augen eine Fehlinvestition.

* das “aber” ist das ganze Tooling zu durchdringen. Das ist - wie fast überall, von Cargo in Rust vielleicht mal abgesehen - einfach immer schmerzhaft zu nutzen und zu durchdringen. Yarn oder Webpack oder pures NPM, etc.... aber es ist ja nicht so, als ob die gleichen Fragen nicht auch in Python vorkommen. pip, pipenv, pyenv, Setup.py vs requirements.txt und und und. Alles erklärlich aus Historie und Notwendigkeit, aber immer erstmal eine dicke Hürde für die uninitiierten Massen.
Aktuell scheint mir React deutlich am meisten genutzt zu werden. Warum hast du dich für Vue entschieden?
guettli
User
Beiträge: 4
Registriert: Montag 21. März 2011, 14:50
Wohnort: Chemnitz
Kontaktdaten:

__deets__ hat geschrieben: Samstag 29. August 2020, 12:21 Ich habe kürzlich beruflich meine erste VUE.js Komponenten mit typescript erstellt. Und muss sagen, ich war sehr angetan (*) von der Erfahrung. Dank Typescript wird der sonst so nervtötende schreiben/F5/abkacken/von vorn Zyklus deutlich erträglicher. Die Möglichkeiten mit einem solch klar getrennten API +Anwendungsansatz sind wirklich beeindruckend. Und auch wenn es da Traditionalisten gibt (wie überall. Nur System V ist das wahre init 🥱), sie werden gerade im Webbereich überrollt werden. Da rein zu investieren ist in meinen Augen eine Fehlinvestition.

* das “aber” ist das ganze Tooling zu durchdringen. Das ist - wie fast überall, von Cargo in Rust vielleicht mal abgesehen - einfach immer schmerzhaft zu nutzen und zu durchdringen. Yarn oder Webpack oder pures NPM, etc.... aber es ist ja nicht so, als ob die gleichen Fragen nicht auch in Python vorkommen. pip, pipenv, pyenv, Setup.py vs requirements.txt und und und. Alles erklärlich aus Historie und Notwendigkeit, aber immer erstmal eine dicke Hürde für die uninitiierten Massen.
Kann man mit Vue auch HTML-Schnippsel ins DOM holen, oder muss man mit einer http JSON-API arbeiten?
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Bitte nicht immer den Beitrag davor komplett zitieren. Den kann man auch so lesen.

Ich habe die Entscheidung nicht gefällt. Sondern das nur übernommen. Ich kann auch nur spekulieren, aber dein Wunsch nach snippets ist einfach nicht der vorgezeichnete Weg.

Mein Post war nur ein Plädoyer für diese Technologie wie sie ist.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Noch ein Nachtrag: auch wenn man mit JSON APIs arbeitet, erlaubt Vue die Arbeit mit HTML und CSS, die gebündelt mit dem Typescript eine Komponente bilden. Das macht es ggf etwas besser zu schlucken als react, wo wohl alles per JS API passiert.
Benutzeravatar
__blackjack__
User
Beiträge: 14237
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Also meine Entscheidung für Vue.js war, dass das recht leichtgewichtig ist und nicht verwendet werden *muss*, also man kann das sachte nach und nach da wo es Sinn macht in ein Projekt einbauen, und muss nicht von Anfang an alles daran ausrichten. Mit den Vor- und Nachteilen die das hat. Vue.js vs. React ist IMHO so ähnlich wie beim Mikrorahmenwerk für Webandnungen auf Serverseite, wie Bottle oder Flask vs. eierlegende Wollmilchsau wie Django.
“Ich bin für die Todesstrafe. Wer schreckliche Dinge getan hat, muss eine angemessene Strafe bekommen. So lernt er seine Lektion für das nächste Mal.” — Britney Spears, Interview in der französischen Zeitung Libération, 2. April 2002
Antworten