[Python-de] Schoenheitsfrage

Fritz Cizmarov fritz at sol.at
Die Jul 6 22:23:48 CEST 2004


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 at 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 at 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 at python.net
> http://python.net/mailman/listinfo/python-de