
Hallo, Ich schreibe hier wegen einer Formfrage, ich schreib seit etwa 2 wochen cgi scripts, aber eines hab ich bis jetz noch nicht gelesen. Wie gestatltet man diese am schoensten? Auf jeden fall muss ich den code sammeln und am schluss ausgeben, damit ich auch noch Cookies loeschen und zuweisen kann. Und wie holt man sich am besten die post /get daten? Ich hab diese probleme zwar schon geloest aber wie macht das ihr? def __init__(self, title, linkref, stylesheet): self.linkref = linkref self.title = title self.code = '''<?xml version="1.0"?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"\n"http://www.w3.org/TR/html4/loose.dtd">\n<html><head><link rel="stylesheet" type="text/css" href="' + stylesheet + '" type="text/css" /><title>''' + title + '</title></head><body><!--layout--><!--/layout--></body></html>''' def layoutCreate(self,banner,menu,footer): code='<!--layout--><div align="center"><table class="layout"><tbody class="layout">' if banner: code = code + '<tr class="layout"><td colspan="2" class="layout"><!--banner--><!--/banner--></td></tr>' code = code + '<tr class="layout">' # die mittlere tabelrow _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de

Hi,
Ich schreibe hier wegen einer Formfrage, ich schreib seit etwa 2 wochen cgi scripts, aber eines hab ich bis jetz noch nicht gelesen. Wie gestatltet man diese am schoensten? Auf jeden fall muss ich den code sammeln und am schluss ausgeben, damit ich auch noch Cookies loeschen und zuweisen kann. Und wie holt man sich am besten die post /get daten? Ich hab diese probleme zwar schon geloest aber wie macht das ihr?
def __init__(self, title, linkref, stylesheet): self.linkref = linkref self.title = title self.code = '''<?xml version="1.0"?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"\n"http://www.w3.org/TR/html4/loose.dtd">\n<html><head><link rel="stylesheet" type="text/css" href="' + stylesheet + '" type="text/css" /><title>''' + title + '</title></head><body><!--layout--><!--/layout--></body></html>'''
def layoutCreate(self,banner,menu,footer): code='<!--layout--><div align="center"><table class="layout"><tbody class="layout">' if banner: code = code + '<tr class="layout"><td colspan="2" class="layout"><!--banner--><!--/banner--></td></tr>' code = code + '<tr class="layout">' # die mittlere tabelrow
schau dir doch mal Quixote an, das koennte dein bester Freund werden :) http://www.mems-exchange.org/software/quixote/ Bye, Axel _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Julian Rath wrote: | Ich schreibe hier wegen einer Formfrage, ich schreib seit etwa 2 wochen | cgi scripts, aber eines hab ich bis jetz noch nicht gelesen. Wie | gestatltet man diese am schoensten? Schön ist nur code _ohne_ html. Für html nutzt man einen template mechanismus freier wahl und gibt diese am Ende aus. Gruß ~ Daniel - -- nihil me cirumdat .. . .. ... . . .. . ... . .. . ... . . . pgp key @ http://files.poelzi.org/pgp.txt ED80 E53D 5269 4BB1 1E73 3A53 CBF9 A421 0A7B 003D -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) Comment: Using GnuPG with Debian - http://enigmail.mozdev.org iD8DBQFA6tpdy/mkIQp7AD0RAvyEAKDUGXv2hWAwydYvSfYPh/vPZWGxxQCePAG3 +yJ6w2LGkdgP0XKmcqww10o= =dcps -----END PGP SIGNATURE----- _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de

Hi Julian, ich hab mal im Pythonforum einen groben Entwurf für eine Klasse, die html erzeugt gepostet. #------------------------------------------------------------------- site_template = """<?xml version="1.0"?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"\n"http://www.w3.org/TR/html4/loose.dtd">\n<html> <head> <title>%(title)s</title> <link rel="stylesheet" type="text/css" href="%(stylesheet)s"/> </head> <body> %(header)s <div align="center"> %(content)s </div> %(footer)s </body> <html>""" site_header = "" site_footer = """<div align="center"><span class="copyright"> <a href="mailto:%(master_mail)s" target="inhalt">%(master_mail)s</a> </span></div>""" class Site(object): __slots__ = ["site_vars"] base_vars = {"site" : site_template, "title" : "Pythonseite", "stylesheet" : "stdandart.css", "header" : site_header, "content" : "", "master_mail" : "du@irgendwo.net", "footer" : site_footer} content_type = "Content-Type: text/html\n\n" def __init__(self, **kw): self.site_vars = self.base_vars.copy() # grundeinstellungen self.site_vars.update(kw) # übergebene Variablen einfügen def __str__(self): site = self.site_vars["site"] % self.site_vars return self.content_type + site % self.site_vars if __name__ == "__main__": s = Site(content="Hallo Welt") # hier kann auch der Titel geändert werden. print s -------------------------------------------------------------------- site_template würde ich bei einer konkreten Anwendung aus einer Datei auslesen, das währe dann auch eine mögliche Anwendung von Metaclassen. Gruß Fritz Am Tue, 06 Jul 2004 18:21:57 +0200 Schrieb Julian Rath <rath@abacon.net>:
Hallo, Ich schreibe hier wegen einer Formfrage, ich schreib seit etwa 2 wochen cgi scripts, aber eines hab ich bis jetz noch nicht gelesen. Wie gestatltet man diese am schoensten? Auf jeden fall muss ich den code sammeln und am schluss ausgeben, damit ich auch noch Cookies loeschen und zuweisen kann. Und wie holt man sich am besten die post /get daten? Ich hab diese probleme zwar schon geloest aber wie macht das ihr?
def __init__(self, title, linkref, stylesheet): self.linkref = linkref self.title = title self.code = '''<?xml version="1.0"?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"\n"http://www.w3.org/TR/html4/loose.dtd">\n<html><he ad><link rel="stylesheet" type="text/css" href="' + stylesheet + '" type="text/css" /><title>''' + title + '</title></head><body><!--layout--><!--/layout--></body></html>'''
def layoutCreate(self,banner,menu,footer): code='<!--layout--><div align="center"><table class="layout"><tbody class="layout">' if banner: code = code + '<tr class="layout"><td colspan="2" class="layout"><!--banner--><!--/banner--></td></tr>' code = code + '<tr class="layout">' # die mittlere tabelrow
_______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
_______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de

On Tue, Jul 06, 2004 at 06:21:57PM +0200, Julian Rath wrote:
Hallo, Ich schreibe hier wegen einer Formfrage, ich schreib seit etwa 2 wochen cgi scripts, aber eines hab ich bis jetz noch nicht gelesen. Wie gestatltet man diese am schoensten? Auf jeden fall muss ich den code sammeln und am schluss ausgeben, damit ich auch noch Cookies loeschen und zuweisen kann. Und wie holt man sich am besten die post /get daten? Ich hab diese probleme zwar schon geloest aber wie macht das ihr?
Hallo, wie jemand anderes auch schon gesagt hat, ist quixote eine schönes und kleines Modul. Ich verwende meist mehrere Klassen: Die Klassen die die eigentliche Logik und Daten (ZODB) beinhalten. Diese Klassen enthalten kein bischen HTML. Für diese Klassen gibt es Kommanodzeilen-Programme um Daten zu manipulieren oder zu testen. Darauf aufbauend gibt es Klassen, die mittels Quixote HTML an den Browser schicken. Deren Methoden sehen wie folgt aus: def foo(self, request): ret=[] ret.append(self.header()) ret.append('<b>Hallo Welt!</b>') ret.append(self.footer()) return ''.join(ret) header() und footer() sind Methoden die '<html>...' bzw. '....</html>' ausgeben. Wenn eine Seite aus mehr HTML als Logik besteht, dann nehme ich ein HTML-Template dieser Seite als Datei und ersetze dort nur kleine Teile die z.B. mit $VAR$ gekennzeichnet sind. Gruß, Thomas -- Thomas Guettler <guettli@thomas-guettler.de> http://www.thomas-guettler.de _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
participants (5)
-
Axel Steiner
-
daniel.poelzleithner
-
Fritz Cizmarov
-
Julian Rath
-
Thomas Guettler