Erzeugen von HTML-Formularen

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.
midan23
User
Beiträge: 116
Registriert: Sonntag 21. Mai 2006, 21:41
Wohnort: Müchen
Kontaktdaten:

Erzeugen von HTML-Formularen

Beitragvon midan23 » Freitag 14. September 2007, 12:53

Hallo zusammen,

ich muss des öfteren Textdokumente erzeugen ... da es dabei immer nach dem gleichen Schema abläuft (Vorlage kopieren und Kopie verändern) habe ich mir aus der Vorlage eine HTML-Datei gebaut:
- Eine Datei mit DIV in mehrere Abschnitte unterteilt
- Es wird immer nur ein Abschnitt angezeigt (Dank CSS-Eigenschaft "display")
- Zwischen den Abschnitten kann über ein Menü beliebig gewechselt werden
- Jeder Abschnitt enthält Eingabefelder für einen Teil der Vorlage
- Der letzte Abschnitt ist eine Zusammenfassung, die mit Copy & Paste in eine Textdatei wandert

Nicht zu vergessen, das einige der Felder optional sind und das bei Pflichtfeldern eine Eingabe erfolgen muss.

Mir vereinfacht das die Arbeit ...

Dummerweise sind einige Kollegen auch auf den Geschmack gekommen und ich muss damit rechnen, das noch andere Textvorlagen darauf warten, in ein HTML-Formular umgewandelt zu werden.
Aber alles von Hand schreiben ? Umständlich ... Und dauert zu lange ...

Daher meine Frage:

Gibt es Möglichkeiten, sich die ganze Prozedur zu vereinfachen ?
BlackJack

Beitragvon BlackJack » Freitag 14. September 2007, 13:42

Falls ich die Frage richtig verstanden habe und falls sie lautet, ob man aus den Vorlagen automatisch das HTML dafür erstellen kann: Das kommt auf die Vorlagen an.

Wenn's nicht automatisch geht, kann man sicher die Vorlage mit Objekten beschreiben aus denen man dann HTML erzeugen kann. Irgendwo in das ganze passt vielleicht auch ein Template-System.

Falls sich eine Vorlage und die "Metadaten" übersichtlich in JSON beschreiben lassen, kann man vielleicht sogar die ganze Formularerzeugung in eine JavaScript-Anwendung verschieben.
midan23
User
Beiträge: 116
Registriert: Sonntag 21. Mai 2006, 21:41
Wohnort: Müchen
Kontaktdaten:

Beitragvon midan23 » Freitag 14. September 2007, 14:06

BlackJack hat geschrieben:Falls ich die Frage richtig verstanden habe und falls sie lautet, ob man aus den Vorlagen automatisch das HTML dafür erstellen kann: Das kommt auf die Vorlagen an.

BlackJack hat geschrieben:Falls sich eine Vorlage und die "Metadaten" übersichtlich in JSON beschreiben lassen, kann man vielleicht sogar die ganze Formularerzeugung in eine JavaScript-Anwendung verschieben.


Die Idee klingt gut ... wenn es auch eher darauf hinauslaufen würde, das man die Vorlage erst nach JSON umschreiben müsste ...

BlackJack hat geschrieben:Wenn's nicht automatisch geht, kann man sicher die Vorlage mit Objekten beschreiben aus denen man dann HTML erzeugen kann. Irgendwo in das ganze passt vielleicht auch ein Template-System.


Objekte und Template-System würde mir aber fürs erste vollkommen reichen ...

Dann könnte man auch solche Sachen wie "nur Zahlen erlaubt", "nur aktiv/sichtbar, wenn Checkbox einen Hacken hat" und "Feldinhalt mit Zeichenkette verknüpfen und als Vorgabe in anderen Feldern verwendet" ...
Benutzeravatar
Michael Schneider
User
Beiträge: 567
Registriert: Samstag 8. April 2006, 12:31
Wohnort: Bremen
Kontaktdaten:

Beitragvon Michael Schneider » Freitag 14. September 2007, 14:33

Hallo Midan,

ich weiß um die Vorteile von HTML, aber trotzdem: wenn man schon ein Programm schreibt, um eine HTML-Vorlage zu erzeugen, warum dann nicht gleich in Python bleiben? Mit Tkinter Bordmitteln hast Du mindestens die Freiheit der HTML-Controls und kannst den Programmfluss, Lesen/Schreiben von Daten, etc. genau steuern.

Vielleicht bin ich als Python-Fan auch einfach nur voreingenommen. ;-)

Grüße,
Michael
Diese Nachricht zersört sich in 5 Sekunden selbst ...
midan23
User
Beiträge: 116
Registriert: Sonntag 21. Mai 2006, 21:41
Wohnort: Müchen
Kontaktdaten:

Beitragvon midan23 » Freitag 14. September 2007, 14:57

Michael Schneider hat geschrieben:Hallo Midan,

ich weiß um die Vorteile von HTML, aber trotzdem: wenn man schon ein Programm schreibt, um eine HTML-Vorlage zu erzeugen, warum dann nicht gleich in Python bleiben? Mit Tkinter Bordmitteln hast Du mindestens die Freiheit der HTML-Controls und kannst den Programmfluss, Lesen/Schreiben von Daten, etc. genau steuern.

Vielleicht bin ich als Python-Fan auch einfach nur voreingenommen. ;-)

Grüße,
Michael


Diese Lösung würde mir auch am Besten gefallen ... das Problem bei der Sache ist nur, das die Rechner, bei denen diese Formulare am Meisten benötigt werden alles Testrechner sind. Und bei denen gilt eine einfache Regel: Installation zusätzlicher Software verboten
(Die Kisten werden im Durchschnitt ein mal die Woche neu installiert. Und das dazu verwendet Image ist vorgegeben ...)
Ich bin schon froh, wenn wir den Windows-eigenen Texteditor und den Internet Explorer zusätzlich verwenden dürfen ...
midan23
User
Beiträge: 116
Registriert: Sonntag 21. Mai 2006, 21:41
Wohnort: Müchen
Kontaktdaten:

Beitragvon midan23 » Sonntag 16. September 2007, 22:29

Ich hab das Wochende mit Suchen verbracht und nichts brauchbares dabei gefunden ...

Entweder es fehlte was wichtiges oder die Template Engine war nicht wirklich für den Offline-Betrieb geeignet ...
(Kann natürlich auch sein, das ich was übersehen habe.)

Widgets wären nicht schlecht ... leider ist auch da nichts passendes dabei ...
Entweder sind es mehrere Dateien oder die HTML-Datei mit dem Formular würde grösser als 200KB werden ... ein wenig zu viel, wie ich finde ...

Sieht so aus, als müsste ich mir selber was schreiben:

Ausgehend von einem Template (oder auch mehrere) und einer Definitions-Datei, in der alle Abschnitte und Eingabefelder stehen, müsste daraus eine einzelne HTML-Datei generiert werden.
Überprüfung der Eingaben inklusive ...

Wird bestimmt lustig ...

Hat jemand konstruktive Ideen ?
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Sonntag 16. September 2007, 22:38

midan23 hat geschrieben:Hat jemand konstruktive Ideen ?

Hallo midan23!

Ich weiß es nicht. Aber vielleicht kannst du dir mit Cheetah etwas zusammenbasteln. Meine Erfahrung damit: http://gelb.bcom.at/trac/misc/wiki/Tuto ... it-cheetah

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
midan23
User
Beiträge: 116
Registriert: Sonntag 21. Mai 2006, 21:41
Wohnort: Müchen
Kontaktdaten:

Beitragvon midan23 » Mittwoch 19. September 2007, 13:32

Danke an alle, die bisher geholfen haben ...

@gerold:
Cheetah hab ich mir kurz angeschaut ... aber ich denke, das ich vorerst besser dran bin, wenn ich bei einem System bleibe, das ich bereits kenne (Kid)

Ein erstes "Entwurfs-Template" habe ich schon fertig (Sind auch nur über 200 Zeilen...).
Damit kann ich mein erstes Formular bereits komplett nachbauen ...

Jetzt sollte ich mir langsam Gedanken machen, wie die Eingabe aussehen sollte (sprich: die Anzahl und Namen der einzelnen Abschnitte; welche Eingabe-Elemente in welcher Reihenfolge in jedem Abschnitt enthalten ist ...)

Mir würde da eine Python-ähnliche Syntax vorschweben ...
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Beitragvon mitsuhiko » Mittwoch 19. September 2007, 21:02

midan23 hat geschrieben:Cheetah hab ich mir kurz angeschaut ... aber ich denke, das ich vorerst besser dran bin, wenn ich bei einem System bleibe, das ich bereits kenne (Kid)


Steig lieber auf Genshi um. Kid ist tot :)
TUFKAB – the user formerly known as blackbird
midan23
User
Beiträge: 116
Registriert: Sonntag 21. Mai 2006, 21:41
Wohnort: Müchen
Kontaktdaten:

Beitragvon midan23 » Mittwoch 19. September 2007, 23:11

Ob Kid tot ist oder nicht ist nicht so wichtig ...

Wichtig ist eher, das Genshi über Features verfügt, die ich bei Kid vermisse ...

Also wechsle ich zu Genshi ... und schon ist eine Frage da:

Mit Kid arbeite ich bisher so:

1) Editor: Template ändern
2) Kommandozeile: Mit einem selbst geschriebenen Script aus dem Template eine HTML-Datei machen
3) Browser: neues Template testen

Es gäbe zwar die Möglichkeit den zweiten Schritt mittels einfachen Webserver überflüssig zu machen ... aber leider gibt es dabei ein Problem:
Da die Templates bei Kid normale Python-Module sind, werden sie ohne Python-Neustart nicht neu geladen ...

Da Genshi aus den Templates keine Python-Module macht, gibt es dieses Problem nicht.

Aber: Wenn im Template Fehler enthalten sind, wo landen die Fehlermeldungen von Genshi ?
1) Im Browser -> Ich würde mir einen Schritt sparen
2) Im Kommandozeilen-Fenster -> Ich müsste auf die Webserver-Lösung verzichten
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Beitragvon veers » Mittwoch 19. September 2007, 23:21

midan23 hat geschrieben:2) Im Kommandozeilen-Fenster -> Ich müsste auf die Webserver-Lösung verzichten
Wieso?
My Website - 29a.ch
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
midan23
User
Beiträge: 116
Registriert: Sonntag 21. Mai 2006, 21:41
Wohnort: Müchen
Kontaktdaten:

Beitragvon midan23 » Donnerstag 20. September 2007, 07:17

veers hat geschrieben:
midan23 hat geschrieben:2) Im Kommandozeilen-Fenster -> Ich müsste auf die Webserver-Lösung verzichten
Wieso?


Wenn ich keine Fehlermeldung im Browser sehe, sondern im Kommandozeilen-Fenster, würde es so aussehen:
1) Editor: Template ändern
2) Browser: Template neu laden
3) Kommandozeilen-Fenster: nach Fehler schauen
4) Browser: Template testen

Es wäre umständlicher ...
midan23
User
Beiträge: 116
Registriert: Sonntag 21. Mai 2006, 21:41
Wohnort: Müchen
Kontaktdaten:

Beitragvon midan23 » Donnerstag 20. September 2007, 11:15

Und noch mehr Fragen:

Warum werden Zeichenfolgen wie "ü" und " " nicht einfach übernommen, sondern durch komische Zeichen ersetzt?

Das Template ist eine UTF-8 codierte Unicode-Datei.
Als AUsgabe möchte ich ebenfalls eine UTF-8 codierte Unicode-Datei haben.
Wie mach ich das mit Genshi ?

(Unter uns: Mit Kid ging das einfach ...)
BlackJack

Beitragvon BlackJack » Donnerstag 20. September 2007, 11:24

Was sind "komische" Zeichen? Kann es sein, dass es einfach UTF-8 für die entsprechenden Entities ist? Warum 'ü' und ' ' verwenden, wenn diese Zeichen in UTF-8 kodierbar sind?

Wahrscheinlich "überleben" die Entities gar nicht, weil sie beim Parsen durch die entsprechenden Zeichen ersetzt werden.

Edit:

Code: Alles auswählen

In [306]: genshi.HTML('ü').render()
Out[306]: '\xc3\xbc'

In [307]: print genshi.HTML('ü').render().decode('utf-8')
ü
midan23
User
Beiträge: 116
Registriert: Sonntag 21. Mai 2006, 21:41
Wohnort: Müchen
Kontaktdaten:

Beitragvon midan23 » Donnerstag 20. September 2007, 12:02

Ich mal selber nachgeschaut ...

1) Laut meinem Editor ist die HTML-Datei eine UTF-8 codierte Unicode-Datei
2) Wenn ich es dem Browser sage, zeigt er mir auch alles korrekt an

Warum ich dem Browser erst sagen muss, das es eine UTF-8 codierung ist, kann ich mir auch denken ...
Ich vermute mal, ihm fehlt so etwas

Code: Alles auswählen

<meta http-equiv="content-type" content="text/html; charset=UTF-8">

Kid hat diese Zeile von selbst hinzugefügt, darum ist mir das bisher nicht aufgefallen ...

BlackJack hat geschrieben:Wahrscheinlich "überleben" die Entities gar nicht, weil sie beim Parsen durch die entsprechenden Zeichen ersetzt werden.

Kann man das vermeiden ? (Ich würde mein " " gerne behalten ...)

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot], Nebeig