Meine ersten Schritte mit Karrigell

Code-Stücke können hier veröffentlicht werden.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Hi!

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>
my_handler.py:

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
my_answer.pih:

Code: Alles auswählen

<h1>Hallo <%= name %>!</h1>
lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Was mich jetzt auch interessieren würde, wäre der Vergleich mit Spyce. Seit 2.0 ist das ja unter neuer Leitung und wird schneller weiterentwickelt (verglichem mit Spyce 1.4.x) (außerdem liest man auf DPU öfters was von Jonathan Ellis).

Spyce konnte man (in alten Tagen) relativ problemlos mit Cheetah-Templates versehen, aber damals gab es auch wesentlich weniger Templatesysteme.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

gerold hat geschrieben: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.
Hi!

So weit bin ich zwar noch nicht, aber zumindest habe ich schon mal den Einstiegspunkt gefunden.

Es gibt im Karrigell-Ordner einen Ordner mit dem Namen ``modules``. In diesem wird nach Python-Modulen gesucht, die mit ``mod_`` beginnen und auf ``.py`` enden. Wenn ich möchte, dass die Dateien mit der Endung ``.tal`` von Karrigell interpretiert werden, dann muss ich nur in diesem Ordner ein Python-Modul mit dem Namen ``mod_tal.py`` anlegen. Schon werden alle TAL-Dateien von diesem Modul interpretiert. Das ist also der Einstiegspunkt, an dem ich später ansetzen werde...

lg
Gerold
:-)

PS: Die Vorlagensprache Cheetah ist bereits in Carrigell integriert.
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

Hallo... ich habe jetzt nach meinen vielen Kaempfen mit mod_python auch mal Karrigell ausprobiert und ich bin absolut begeistert 8)

Ich bin ja nicht so der Fan von PHP-artigem Scripting und hab von daher auch alles was ich brauche... eine index.py und einen Printbefehl :D

Ich finde es so genial einfach. Wenn ich bedenke wie kompliziert das alles mit mod_python ist. Hier in Karrigell gebe ich einfach alles nach stdout aus und es ist gut. Ich werd am Montag gleich mal zum Admin rennen und ihm das aufschwatzen ...ich bin mit ihm per Du ...also denk ich, wird das nicht das Problem sein. Es muss halt nur unter Solaris laufen (Karrigell ist doch sicherlich reines Python, oder hat jemand schonmal negatives darueber gehoert, ob es auf Solaris laeuft?).
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Hi!

Ich habe auch schon TAL/METAL integriert. Es ist zwar noch nicht perfekt, da man die Pfade zu den METAL-Vorlagen noch "händisch" angeben muss, aber imerhin. :-)

Leider konnte ich noch nicht viel Zeit in "TAL/METAL mit Karrigell" investieren. Aber was ich so gelesen habe, ist die Vorlagensprache Cheetah auch nicht so ohne. Man kann die einzelnen Vorlagen wie Klassen beerben und Definitionen überschreiben. Damit hat man ein einfaches System für die Aufarbeitung, von sich wiederholenden Inhalten.

Sobald ich eine Schnittstelle zu einer Kaffemaschine und noch ein paar Kundenwünsche programmiert habe, werde ich ein paar Tage frei nehmen und in die etwas bessere Integration von TAL und METAL in Karrigell investieren. Eine Dokumentation muss dann auch noch geschrieben werden, damit es auch von anderen benutzt werden kann. Und idealerweise wäre da noch meine geliebte "Acquisition", damit über Pfadvererbung auf Objekte zugegriffen werden kann. --> Zope for ordinary people... :D

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Wenn endlich alle Frameworks WSGI reden kommt wieder einen, dass das nicht tut. War irgendwie absehbar :roll:
TUFKAB – the user formerly known as blackbird
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

blackbird hat geschrieben:Wenn endlich alle Frameworks WSGI reden kommt wieder einen, dass das nicht tut. War irgendwie absehbar :roll:
Der Preis für WSGI ist derzeit viel zu hoch!

Es ist alles *viel* komplizierter geworden als es sein müsste. Statt wie bei Karrigell oder PHP, einfach eine Datei mit einer vorgegebenen Endung zum Server hochzuladen, muss man bei den derzeitigen WSGI-Lösungen diese Datei auch noch in irgendeine Anwendungslogik integrieren.

Das ist es, was WSGI derzeit so unnütz verkompliziert. Man muss Bücher lesen, um auch nur eine funktionierende, dynamische Internetseite zum Apache hoch zu bekommen.

Das Karrigell-Tar-Archiv entpackt man irgendwohin, startet ``karrigell.py`` und schon läuft der eingebaute (recht schnelle) Webserver. Alle PY-Seiten, die im untergeordneten ``webapps``-Ordner liegen, werden interpretiert und im Browser angezeigt, sobald die entsprechende URL aufgerufen wird. Einfacher geht es nicht! :D

Sobald ein WSGI-Framework so einfach zu verwenden ist, lasse ich mich gerne auf so ein WSGI-Framework ein, aber derzeit sind die Vorteile von Karrigell einfach enorm.

Warum willst du jemandem WSGI einreden, wenn es die Arbeit im Moment nur verkompliziert, verlängert und nur den Pseudo-Vorteil der Wahlmöglichkeit der Schnittstelle (mod_python, fastcgi,...) bringt? Das verstehe ich nicht.
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

...habe ich schon erwähnt, dass man statische Inhalte wie Bilder oder reine HTML-Seiten einfach nur in den ``webapps``-Ordner speichert und Karrigell diese ohne zusätzliche Konfiguration ausliefert? :twisted:
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

gerold hat geschrieben:Das Karrigell-Tar-Archiv entpackt man irgendwohin, startet ``karrigell.py`` und schon läuft der eingebaute (recht schnelle) Webserver.
Das ist schön, machen aber alle anderen Frameworks meist auch.

Aber was machst du im Shared-Webhosting bereicht, wo du keinen Shell Zugang hast? Wie funktioniert Karrigell da?

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

jens hat geschrieben:Aber was machst du im Shared-Webhosting bereicht, wo du keinen Shell Zugang hast? Wie funktioniert Karrigell da?
Hi Jens!

Mit mod_rewrite: http://karrigell.sourceforge.net/en/apache.htm

Aber in diese Lage werde ich nie kommen, da wir für unsere Firma jetzt schon zwei Webserver laufen haben.

Und für die, die nicht in so einer glücklichen Lage sind. Es gibt günstige vHosts und bei gpcom.de gibt es um 8,- Euro mod_rewrite und Python im "Web Private SH M"-Paket.

Edit: Da fällt mir noch ein: wenn irgendjemand Karrigell über WSGI ausführen möchte, dann glaube ich nicht, dass das mit so großen Schwierigkeiten machbar ist. Karrigell ist reines Python und ziemlich einfach gebaut. Es muss nur jemand machen.

:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
BlackJack

Ich verstehe diesen ganzen WSGI-Hype auch nicht wirklich. Das ist eine Schnittstelle, die für Entwickler von Webframeworks gedacht ist (oder war), d.h. einem "Endkunden", der Webseiten schreiben will, sollte es eigentlich egal sein. Ausser man will das 100000ste Webframework entwickeln.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

gerold hat geschrieben:Es gibt günstige vHosts und bei gpcom.de gibt es um 8,- Euro mod_rewrite und Python im "Web Private SH M"-Paket.
Die Firma hat aber nichts mit dir zu tun, oder?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Leonidas hat geschrieben:
gerold hat geschrieben:gpcom.de
Die Firma hat aber nichts mit dir zu tun, oder?
Hi Leonidas!

Ich hatte mal die Domäne "gpcom.at", aber das ist schon lange her. Mit "gpcom.de" habe ich leider nichts zu tun. 8)

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

BlackJack hat geschrieben:Ich verstehe diesen ganzen WSGI-Hype auch nicht wirklich. Das ist eine Schnittstelle, die für Entwickler von Webframeworks gedacht ist (oder war), d.h. einem "Endkunden", der Webseiten schreiben will, sollte es eigentlich egal sein. Ausser man will das 100000ste Webframework entwickeln.
Für den Endkunden ist es insofern interessant, als dass er eine Vielzahl von Deployment-Möglichkeiten hat und nicht auf mod_python, CGI oder sonstwas beschränkt ist.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Dieser Link zum Thema "Karrigell" dürfte interessant sein:

http://www.devshed.com/c/a/Python/Karrigell-for-Python/

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

BlackJack hat geschrieben:Ich verstehe diesen ganzen WSGI-Hype auch nicht wirklich. Das ist eine Schnittstelle, die für Entwickler von Webframeworks gedacht ist (oder war), d.h. einem "Endkunden", der Webseiten schreiben will, sollte es eigentlich egal sein. Ausser man will das 100000ste Webframework entwickeln.
Karrigell ist kein Framework?
TUFKAB – the user formerly known as blackbird
BlackJack

Ich gehe mal davon aus, Du kannst die Frage selbst mit "Ja" beantworten. Warum fragst Du also?
Benutzeravatar
mq
User
Beiträge: 124
Registriert: Samstag 1. Januar 2005, 19:14

Hm. Fuer mich sieht das irgendwie mehr nach "PHP fuer Python" als nach einem Framework aus. Ist das wirklich so oder taeusche ich mich da?
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

gerold hat geschrieben:Der Preis für WSGI ist derzeit viel zu hoch!
Ja? Ich kann keinen merklichen Overhead erkennen.
Es ist alles *viel* komplizierter geworden als es sein müsste. Statt wie bei Karrigell oder PHP, einfach eine Datei mit einer vorgegebenen Endung zum Server hochzuladen, muss man bei den derzeitigen WSGI-Lösungen diese Datei auch noch in irgendeine Anwendungslogik integrieren.
Dann versuch mal eine Karrigell-Anwendung, ein MoinMoin, ein django portal, eine trac, eine pocoo installation und eine cherrypy2 Anwendung auf ein und demselben Server zu installieren. Wünsch dir jetzt schon viel Spaß.
Das ist es, was WSGI derzeit so unnütz verkompliziert. Man muss Bücher lesen, um auch nur eine funktionierende, dynamische Internetseite zum Apache hoch zu bekommen.
Kenn kein WSGI Buch. Leider.
Das Karrigell-Tar-Archiv entpackt man irgendwohin, startet ``karrigell.py`` und schon läuft der eingebaute (recht schnelle) Webserver. Alle PY-Seiten, die im untergeordneten ``webapps``-Ordner liegen, werden interpretiert und im Browser angezeigt, sobald die entsprechende URL aufgerufen wird. Einfacher geht es nicht! :D
Das kannst du mit WSGI Anwendungen auch. Ein WSGI Server ist mit python2.5 sogar schon mit in der stdlib.
Sobald ein WSGI-Framework so einfach zu verwenden ist, lasse ich mich gerne auf so ein WSGI-Framework ein, aber derzeit sind die Vorteile von Karrigell einfach enorm.
Bin immer noch auf der Suche nach den Vorteilen.
TUFKAB – the user formerly known as blackbird
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Ich habe die Anleitung nach [wiki]Erste Schritte mit Karrigell[/wiki] übertragen (man könnte auch transkopbiert sagen, denn ich habe den Text etwas dem Wiki-Stil angepasst). Die Seite ist im Moment leider nur sehr schwach im Wiki verlinkt, daher sind alle herzlich dazu aufgerufen die Siete dort zu verlinken, wo sie nützlich sein könnte.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten