Erste Schritte mit Karrigell

Karrigell ist ein weiteres Python-Framework, welches ermöglicht Python in PHP-artige Weise in HTML-Seiten einzubennen. Gerold hat sich mal die Mühe gemacht, seine ersten Schritte im Forum zu beschreiben. Diese Seite fasst Gerolds Erfahrungen in einem kurzen Wiki-Artikel zusammen.

Inhalt

Einfaches Beispiel

Die PIH-Dateien (Python in HTML) ähneln den altbekannten ASP-Dateien (Active Server Page) ebenso wie PHP. Sie funktionieren sehr gut, aber schon ASP wurde viel zu schnell komplex und so sieh auch mit diesen PIH-Dateien aus. Hier müsste man gleich von Anfang an auf eine gute Template-Engine ausweichen.

Die benötigten Dateien sind:

my_form.pih

<?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>

my_handler.py

   1 import Template
   2 
   3 name = QUERY.get("name", None)
   4 
   5 if name == "Gerold":
   6     # Meldung anzeigen
   7     my_answer = Template.getScript("my_answer.pih")
   8     print my_answer.render(name = name).value
   9 else:
  10     # my_form.pih wieder aufrufen und Fehler anzeigen
  11     error_answer = Template.getScript("my_form.pih")
  12     print error_answer.render(
  13         name = name, error_message = "Gib 'Gerold' ein..."
  14     ).value

my_answer.pih

<h1>Hallo <%= name %>!</h1>

Templating

Zusätzlich zum Stamm-System mit den PY-, PIH-, HIP- und KS-Dateien kann man die Vorlagensprache "Cheetah" (Dateiendung: TMPL) verwenden. Man ist also zum Glück nicht gezwungen, Python-Code und HTML-Code zu mischen.

Weiterführende Links

Tags: Web

Erste Schritte mit Karrigell (last edited 2009-06-17 16:14:16 by localhost)