Mini-Webserver mit Django-Anleihen gesucht

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
lunas
User
Beiträge: 87
Registriert: Samstag 2. Dezember 2006, 10:56

Hi,

ich suche eine Möglichkeit einer Konsolenanwendung ein schickes html frontend zu verpassen. Es handelt sich dabei um ein Programm, das Messwerte einliest und dann darstellt (Tabellenform würde erst einmal genügen). Das Skript kann aber auch parameterisiert werden, sodass ich als auch von der html-Seite Daten übermitteln müsste.

Zur Durchführung:
Im Programm müsste ein (kleiner) Webserver gestartet werden, der Daten zwischen Skript und html-Seite austauscht. Das Beispiel in http://www.python-forum.de/post-42067.html#42067 ist eigentlich schon ganz okay, aber mir gefällt nicht, dass ich in python html-code zusammenbasteln muss. Mir hat gefallen wie tags und Programmkonstrukte (Schleifen, etc.) mit Django ersetzt werden, sowas würde mir schon eher zusagen. Gibt es diesen Part von Django auch standalone, also ohne DB-Anbindung, integrierter Webserver und was sonst noch alles zu Django gehört? Oder kennt vielleicht jemand ein anderes Modul, das diese Aufgabe erledigen könnte?

Ich möchte das Programm möglichst hinterher in eine ausführbare Windowsanwendung "kompilieren". Wie gut das unter Verwendung mit Django und dem integrierten Webserver geht, weiß ich nicht, aber ich kann mir denken, dass das Endergebnis (sprich: die binary) ziemlich groß sein wird (reine Spekulation)...

Ich bin gespannt auf eure Antworten.

lunas
lunas
User
Beiträge: 87
Registriert: Samstag 2. Dezember 2006, 10:56

Hmm... Ich denke die Antwort kann ich mir fast selbst geben: CherryPy + Jinja. Trotzdem würde ich gerne eure Meinungen darüber lesen...
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

lunas hat geschrieben:Zur Durchführung:
Im Programm müsste ein (kleiner) Webserver gestartet werden, der Daten zwischen Skript und html-Seite austauscht. Das Beispiel in http://www.python-forum.de/post-42067.html#42067 ist eigentlich schon ganz okay, aber mir gefällt nicht, dass ich in python html-code zusammenbasteln muss. Mir hat gefallen wie tags und Programmkonstrukte (Schleifen, etc.) mit Django ersetzt werden, sowas würde mir schon eher zusagen. Gibt es diesen Part von Django auch standalone, also ohne DB-Anbindung, integrierter Webserver und was sonst noch alles zu Django gehört? Oder kennt vielleicht jemand ein anderes Modul, das diese Aufgabe erledigen könnte?
Wie du selbst festgestellt hast, ist der CherryPy-Server genau das richtige (habe ich letztens auch benutzt um eine GUI zu machen, funktioniert gut). Was die Template-Engine angeht kannst du Jinja nehmen, jedoch wird Jinja 1.0 mit Djangos Template-Engine relativ wenig zu tun haben, wie blackbird schrieb. Daher kannst du die Django-Template-Engine standalone nutzen - wie das geht steht hier.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
EnTeQuAk
User
Beiträge: 986
Registriert: Freitag 21. Juli 2006, 15:03
Wohnort: Berlin
Kontaktdaten:

Wie du selbst festgestellt hast, ist der CherryPy-Server genau das richtige (habe ich letztens auch benutzt um eine GUI zu machen, funktioniert gut). Was die Template-Engine angeht kannst du Jinja nehmen, jedoch wird Jinja 1.0 mit Djangos Template-Engine relativ wenig zu tun haben, wie blackbird schrieb.
Aber -- Jinja 0.7 wird noch eine Weile neben Jinja 10. existieren, wenn ich es richitg gehört habe
lunas
User
Beiträge: 87
Registriert: Samstag 2. Dezember 2006, 10:56

Danke erst mal für die Hinweise.

Mir ist allerdings nicht klar, ob Jinja die Template Engine von Django ist, ob sich lediglich ihr Template Syntax ähnelt/gleicht und was der Unterschied zwischen Jinja 0.7 und 1.0 ist (und wenn, dann wird welche Version in Django benutzt?).

Ich habe jeweils einen Codeschnipsel von CherryPy und Jinja miteinander verheiratet und das hat auch ganz gut funktioniert (auf den ersten Blick zumindestens). Also warum sollte man die Template Sprache von Django aus Django herausoperieren, wenn sie schon als einzelne Komponente verfügbar ist...?

Wäre toll, wenn jemand hier noch einmal für Klarheit sorgen könnte... Dankeschön.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

EnTeQuAk hat geschrieben:Aber -- Jinja 0.7 wird noch eine Weile neben Jinja 10. existieren, wenn ich es richitg gehört habe
Ja, kann sein - aber letztendlich bist du doch auf einem Dead-End angelangt.
lunas hat geschrieben:Mir ist allerdings nicht klar, ob Jinja die Template Engine von Django ist, ob sich lediglich ihr Template Syntax ähnelt/gleicht und was der Unterschied zwischen Jinja 0.7 und 1.0 ist (und wenn, dann wird welche Version in Django benutzt?).
Jinja hat als eine Art Fork der Django-Templates gestartet (ob es ein Fork war oder eine Eigenentwicklung, kann ich dir nicht sagen) die die Dinge die in Djangos Templates unschön sind zu lösen. Django hat mit Jinja aber nichts zu tun, nutzt keinerlei Jinja-Code. Die Jinja-Syntax ist eine aufgeräumte Django-Syntx.
lunas hat geschrieben:Ich habe jeweils einen Codeschnipsel von CherryPy und Jinja miteinander verheiratet und das hat auch ganz gut funktioniert (auf den ersten Blick zumindestens). Also warum sollte man die Template Sprache von Django aus Django herausoperieren, wenn sie schon als einzelne Komponente verfügbar ist...?
Weil einige Dinge in Djangos Templatesprache na sagen wir mal... ungeschickt gelöst sind - Jinja hat an einigen Stellen korrigiert.

Dieser Post zeigt die Unterschiede zu Pocoo pre-1.0 auf. Zum Beispiel wird es keine Templatetags geben. Ich denke, dass blackbird mir erst noch erklären muss, wie man ohne die auskommen soll.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
lunas
User
Beiträge: 87
Registriert: Samstag 2. Dezember 2006, 10:56

Alles klar. Der Jinja und Django Syntax sahen beide auf den ersten Blick gleich aus, deshalb meine Vermutung, dass Jinja ein Teil von Django ist. Aber wenn ich mich damit noch mehr beschäftige werde ich die Unterschiede wohl bemerken...

Besten Dank noch mal.
Antworten