Vorbedingungen:
- Muß auf 2.4.x funzen (1)
- Vorerst keine OO in Quelltext (2)
- Quelltexte landen mal in Datenbank
- Kapselung (Import würde auf Anwendungen beschränkt)(3)
Code: Alles auswählen
titel="Wurstmaschine"; variante="0.1"
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" \
"http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
<html>
<head>
<title>%s</title>
<meta name="generator" content="%s %s">
</head>
club='"<b><u>A</u></b>nonyme <b><u>A</u></b>normale"'
mitglieder =\
(("Anton","Tirol","Ist in seine Ziege verliebt"),\
("Emma","München","Prügelt gerne ihren Mann"),\
("Guido","Bad Honnef","Würde immer noch FDP wählen ;-)"))
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" alink="#00FF00" vlink="#FF00FF">
<p>Der erste Versuch mit der <b>%s</b></p>
<p>\
Willkommen bei %s\
</p>
<ul>
~ % (titel,titel,variante,titel,club)
for x in mitglieder :
<li>Mitglied: %s aus: %s - %s</li>
~ % x
</ul>
</body>
</html>
- Jede HTML-Zeile beginnt mit "<", was nebenbei ordentlicher Stil wäre.
- Diese können auch (Python-Like) mit "\" verlängert werden.
- Python und HTML behalten ihre eigene Einrückung.
- Mit "~" oder anderen beliebigen Zeichen wird die HTML-Ausgabe angeregt.
- "~" muß syntaktisch richtig eingerückt sein.
- Parameter werden entspr. PRINT angehängt (RE-Fans aufgepaßt).
Code: Alles auswählen
# 11 Leere Liste - Puffer
t=[]; puffer=''
# 12 Zeilen rein - gleich verbinden
f=open('template.html','r')
try:
for z in f:
while z.rstrip().endswith('\\') : z=z[:z.rfind('\\')]+f.next().lstrip()
t.append(z) # schoen Zeile fuer Zeile
finally:
f.close()
t.append('') # Notbremse
# 13 Und raus damit
f=open('ergebnis.py','w')
for z in t:
h=z.lstrip()[:1]
if h=='<' : puffer=puffer+z
else :
if (z=='' or h=='~') and puffer :
p=z.find('~')
while puffer.endswith('\r') or puffer.endswith('\n') : puffer=puffer[:-1]
z=z[:p]+'print """'+puffer+'"""'+z[p+1:]
puffer=''
f.write(z)
f.close()
Nur mal zur Diskussion (4)Der erste Versuch mit der Wurstmaschine
Willkommen bei "Anonyme Anormale"
- Mitglied: Anton aus: Tirol - Ist in seine Ziege verliebt
- Mitglied: Emma aus: München - Prügelt gerne ihren Mann
- Mitglied: Guido aus: Bad Honnef - Würde immer noch FDP wählen
Ideen zur Template-Gestaltung sind gefragt!
(1) Wegen Webspace bei Kunden und den richtigen Umstieg mache ich eh später auf 3.x
(2) siehe (1) und die Trennung der "Templates" ist noch offen
(3) Alle notwendigen/erlaubten Importe werden von der Umgebung geliefert!
(4) Funzt z.Zt. schon in einem Webshop mit Anbindung mySQL