Html Datei erstellen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
halo23
User
Beiträge: 20
Registriert: Freitag 30. Oktober 2009, 08:01

Ich bin überfordert, da es für mein Problem jedemenge Lösungen zu geben scheint und ich nicht filtern kann.

Ich habe ein Python Skript dass infos von mehreren Servern abfragt. Diese möchte ich auf einer Website ausgeben.

Welche simple, coole, zukunftssichere Methode möchte ich denn hierfür anwenden?
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@halo23: willst Du nun statische HTML-Seiten generieren oder einen HTTP-Server betreiben?
halo23
User
Beiträge: 20
Registriert: Freitag 30. Oktober 2009, 08:01

Nur statische.
__deets__
User
Beiträge: 14529
Registriert: Mittwoch 14. Oktober 2015, 14:29

Warum statisch? Ist doch viel anstrengender, als einen Server zu schreiben, wenn die Natur der Daten eh dynamisch ist. Was auch immer du fuer Code schreibst, der dir die statische Seite zusammenroedelt, das Ergebnis kann dann auch gleich ausgeliefert werden.

Und ohne viel mehr Informationen dazu, was das fuer Daten sind, und wie die dargestellt werden, kann man da auch wenig zu sagen. Im Grunde geht jedes Webframework, was "cool" sein soll weiss auch niemand so genau, und die Zukunft ist im Web per se sehr unsicher :)
halo23
User
Beiträge: 20
Registriert: Freitag 30. Oktober 2009, 08:01

Warum statisch? Ist doch viel anstrengender, als einen Server zu schreiben, wenn die Natur der Daten eh dynamisch ist
In erster Linie, um es einfach zu halten. Ein Apache läuft auf dem Server bereits, dass Skript, welches die Infos per print() ausgibt, existiert bereits.
Flask ist ja "cool", es kommt mir für meinen Anwendungsfall dennoch vor, wie "mit Kanonen auf Spatzen geschossen".
Ich räume aber ein, dass ich mich hier ganz gewaltig irre könnte.
Darum wollte ich hier mal die Experten Fragen, wie die das realisieren würden.
Und ohne viel mehr Informationen dazu, was das fuer Daten sind, und wie die dargestellt werden, kann man da auch wenig zu sagen
Bin mir nicht sicher, ob ich die Frage richtig verstehe: Ich habe einige Strings die man bspw. in ein Dictionary packen könnte.
Zunächst möchte ich diese Strings in einer Tabelle darstellen.
__deets__
User
Beiträge: 14529
Registriert: Mittwoch 14. Oktober 2015, 14:29

Naja normalerweise ist heute ja Standard, dass eine Webseite sich zB automatisch updated. Dafuer ist dann eine statisch Seite ungeeignet. Wenn es numerische Daten in Form von Graphen sind, dann kann sowas wie Bokeh benutzt werden. Etc.

Wenn es dir nur um ein Templating system gibt, dann nimm was auch immer du willst. Die unterscheiden sich in meinen Augen nicht gross, und selbst die eingebauten Mechanismen von Python koennen schon recht weit tragen. Wichiger ist hier der konzeptionelle Ansatz: klare Trennung von Daten und Darstellung. Sonst wird ein Layout-Wechsel zum Albtraum.

Der Apache ist durch Flask leicht zu ersetzen. Solange du keine Hochlastszenarien hast, bei denen du unbedingt statisch Inhalte vom Apache (oder NGINX) ausliefern lassen willst, weil es um jeden CPU-Zyklus geht, braucht man sich halt nicht um eine grossartige Integration von APACHE mit zB WSGI und Flask bemuehen.

Last but not least: wenn dein Skript gerade eine HTML-Datei anfasst, die der Apache im gleichen Moment auslesen will, gibt's Buchstabensalat. Ja, das ist selten. Aber trotzdem eine Fehlerquelle. Ein laufender Server hat da viel mehr moeglichkeiten.
halo23
User
Beiträge: 20
Registriert: Freitag 30. Oktober 2009, 08:01

OK, dass hilft mir schon mal weiter!

Ich habe mich jetzt für jinja entschieden.

Vielleicht steige ich ja später noch auf Flask um.

Danke und Gruß
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

Flask nutzt Jinja2 als Template-Engine, von daher müsste du dann nur noch das Routing lernen. Was auch einfach ist.

Gruß, noisefloor
Benutzeravatar
pixewakb
User
Beiträge: 1412
Registriert: Sonntag 24. April 2011, 19:43

Ich habe mir eine eigene Bibliothek geschrieben - in den Anfangstagen meines Schaffens -, um Daten lokal in HTML-Reports ausgeben zu können. Das Verfahren läuft für mich sehr gut und hat sich bis heute bewährt. Alte Standard-Reports packe ich fast nie an.

Aus Interesse: Wie würdet ihr eine Flask-App im Netz hosten? Also mit php kenne ich mich aus, da gab es keine Schwierigkeiten einen Freehoster zu finden, aber ein Python Free-Hoster mit Python3-Support ist mir eigentlich noch nicht untergekommen.
halo23
User
Beiträge: 20
Registriert: Freitag 30. Oktober 2009, 08:01

Vielleicht hilft dir das weiter:

https://gist.github.com/tocsinDE/98c423da2724d23c02ff

Ich habe mit Uberspace bisher guter Erfahrungen gemacht.
nezzcarth
User
Beiträge: 1633
Registriert: Samstag 16. April 2011, 12:47

@pixewakb: Allerdings sollte man vielleicht dazu sagen, dass die Variante, wie Python bei Uberspace gehandelt wird - per FCGI - aus "betrieblichen Gründen" nicht der übliche Weg zur Apache-Anbindung ist (das wäre wohl mod_wsgi). Hier findest du ein paar generelle Infos zum Flask-Deployment:
http://flask.pocoo.org/docs/0.12/deploy ... ed-options
Benutzeravatar
pixewakb
User
Beiträge: 1412
Registriert: Sonntag 24. April 2011, 19:43

Danke, ich habe gestern mal aus Zeitvertreib eine simple Einseiten-Flask-App erstellt. php scheint mir in der Entwicklung noch einfacher, die Links habe ich mir mal gebookmarkt...
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

Python Webapplikation sollte man wo immer möglich über WSGI ausliefern. Das ist nun mal der Standard.

Alternativ: per Zappa auf AWS deployen. Oder, eine Stufe kleiner, AWS + Chalice. Letzteres habe ich für eine kleines Projekt im Einsatz, wo keine Datenpersistenz nötig ist. Klappt gut.
php scheint mir in der Entwicklung noch einfacher
Er hat JEHOVA gesagt! :D

Gruß, noisefloor
Antworten