Ich musste einfach mal ein paar Dinge bei Karrigell ausprobieren...
Diese pih-Dateien (Python in HTML) fühlen sich wie die alten ASP-Dateien (Active Server Page) an. Funktioniert sehr gut, aber ASP wurde viel zu schnell komplex und so sieht es wahrscheinlich auch mit diesen pih-Dateien aus. Hier müsste man gleich von Anfang an auf eine gute Vorlagensprache ausweichen. Z.B. TAL, KID, oder so etwas. Ich werde das später mal mit SimpleTal ausprobieren.
my_form.pih:
Code: Alles auswählen
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Mein Formular</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<%
# Variablen
error_message = locals().get("error_message", "")
name = locals().get("name", "")
# Fehlermeldung anzeigen
%>
<% if error_message: %>
<div style="border-color: red; border-style: solid; margin: 0.5em;">
<%= error_message %>
</div>
<% end %>
<% # Formular %>
<form action="my_handler.py">
Name: <input type="text" name="name" value="<%= name %>" /><br />
<input type="submit" value="Submit" />
</form>
</body>
</html>
Code: Alles auswählen
import Template
name = QUERY.get("name", None)
if name == "Gerold":
# Meldung anzeigen
my_answer = Template.getScript("my_answer.pih")
print my_answer.render(name = name).value
else:
# my_form.pih wieder aufrufen und Fehler anzeigen
error_answer = Template.getScript("my_form.pih")
print error_answer.render(
name = name, error_message = "Gib 'Gerold' ein..."
).value
Code: Alles auswählen
<h1>Hallo <%= name %>!</h1>
Gerold