Seite 1 von 1
HTML Snippets anstatt API+React (htmx)
Verfasst: Samstag 29. August 2020, 08:06
von guettli
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
Re: HTML Snippets anstatt API+React (htmx)
Verfasst: Samstag 29. August 2020, 11:44
von DasIch
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.
Re: HTML Snippets anstatt API+React (htmx)
Verfasst: Samstag 29. August 2020, 12:21
von __deets__
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.
Re: HTML Snippets anstatt API+React (htmx)
Verfasst: Sonntag 30. August 2020, 21:15
von guettli
__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?
Re: HTML Snippets anstatt API+React (htmx)
Verfasst: Sonntag 30. August 2020, 21:17
von guettli
__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?
Re: HTML Snippets anstatt API+React (htmx)
Verfasst: Sonntag 30. August 2020, 22:01
von __deets__
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.
Re: HTML Snippets anstatt API+React (htmx)
Verfasst: Sonntag 30. August 2020, 22:23
von __deets__
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.
Re: HTML Snippets anstatt API+React (htmx)
Verfasst: Montag 31. August 2020, 00:20
von __blackjack__
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.