Colubrid WSGI Request Handler 0.8

Stellt hier eure Projekte vor.
Internetseiten, Skripte, und alles andere bzgl. Python.
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Colubrid WSGI Request Handler 0.8

Beitragvon mitsuhiko » Samstag 21. Januar 2006, 07:58

Colubrid ist out now :-)

Bringt alles mit, was man zum WSGI entwickeln braucht:
  • Standalone Server
  • CGI Wrapper
  • 5 Anwendungstypen für so ziemlich alle Bereiche
  • Debugging System
  • URL Dispatcher

Und natürlich alles WSGI kompatibel :)

Ich hab ausnahmsweise sogar eine komplette doku geschrieben*, aber durch mein schlechtes Englisch leider sehr schlech zu lesen :oops:

Wer sich nichts unter Colubrid vorstellen kann, hier keine kleine Beispielanwendung:

Code: Alles auswählen

from colubrid import BaseApplication

class MyApplication(BaseApplication):

    def process_request(self):
        try:
            times = int(request.GET['times'])
        except:
            times = 1
        try:
            name = request.GET['name']
        except:
            name = 'Welt'
        self.request.headers['Content-Type'] = 'text/plain'
        for i in xrange(times):
            self.request.write('Hallo %s!\n' % name)
       
app = MyApplication


Zum testen kann man das ding einfach mit python starten, oder es an einen WSGI wrapper kleben. Details gibts in der Doku.

*dynamic response fehlt noch, aber es ist ein beispiel im svn repo.

//EDIT: ganz vergessen. Die Webseite selber ist mit Colubrid und Jinja umgesetzt. Den Sourcecode davon gibt es im trac.
Zuletzt geändert von mitsuhiko am Mittwoch 25. Januar 2006, 18:35, insgesamt 1-mal geändert.
TUFKAB – the user formerly known as blackbird
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Re: Colubrid WSGI Request Handler 0.7

Beitragvon jens » Samstag 21. Januar 2006, 09:24

blackbird hat geschrieben://EDIT: ganz vergessen. Die Webseite selber ist mit Colubrid und Jinja umgesetzt.

Kleine Anmerkung zur Doku. Da fehlt eindeutig ein vor/zurück ;)

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Re: Colubrid WSGI Request Handler 0.7

Beitragvon mitsuhiko » Samstag 21. Januar 2006, 09:57

jens hat geschrieben:
blackbird hat geschrieben://EDIT: ganz vergessen. Die Webseite selber ist mit Colubrid und Jinja umgesetzt.

Kleine Anmerkung zur Doku. Da fehlt eindeutig ein vor/zurück ;)


Ich weiß :lol: Aber da das alles nur markdown geparste Seiten sind war ich zu faul da überall manuell Buttons einzubauen. :wink:
TUFKAB – the user formerly known as blackbird
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Samstag 21. Januar 2006, 14:33

Also markdown fand ich irgendwie doof... Mit textile kam ich wesendlich besser zurecht ;)
Warum eigentlich keine Wiki-Seiten als Doku? Dann könnten auch andere Mitarbeiten.

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Beitragvon mitsuhiko » Samstag 21. Januar 2006, 15:58

jens hat geschrieben:Also markdown fand ich irgendwie doof... Mit textile kam ich wesendlich besser zurecht ;)
Warum eigentlich keine Wiki-Seiten als Doku? Dann könnten auch andere Mitarbeiten.


Weil auch so andere da mithelfen können. Liegt ja alles im repo vor. :wink: Und markdown find ich besser implementiert als textile.
TUFKAB – the user formerly known as blackbird
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Beitragvon mitsuhiko » Montag 23. Januar 2006, 18:12

Großes Update. Ich denke das letzte vor dem neuen Release.

Jetzt bringt jede Colubrid ein komplettes Cmd Interface mit, mit dem sich Apache Configs erstellen lassen, der Webserver kann nun Code wirklich nachladen und auch statische Dateien servieren.

Beispiel für die Apache Config:

Code: Alles auswählen

blackbird@volverine:~/Developement/WSGIarea/colubrid/trunk$ python examples/webpylike.py genconfig --interface-type=cgi --vhost=www.mywebpage.tld
<VirtualHost *>
    ServerName www.mywebpage.tld
    Alias /favicon.ico /home/blackbird/Developement/WSGIarea/colubrid/trunk/static/favicon.ico
    Alias /static /home/blackbird/Developement/WSGIarea/colubrid/trunk/static
    ScriptAlias / /home/blackbird/Developement/WSGIarea/colubrid/trunk/examples/webpylike.cgi/
</VirtualHost>
TUFKAB – the user formerly known as blackbird
henning
User
Beiträge: 274
Registriert: Dienstag 26. Juli 2005, 18:37

Beitragvon henning » Dienstag 24. Januar 2006, 09:26

Ist James damit jetzt deprecated oder lässt du das parallel weiterlaufen?
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Beitragvon mitsuhiko » Dienstag 24. Januar 2006, 12:41

henning hat geschrieben:Ist James damit jetzt deprecated oder lässt du das parallel weiterlaufen?


Läuft parallel weiter, ist aber nicht für Colubrid gedacht, weil Colubrid eben diesen schon mitbringt. Beim nächsten James Release werden die Änderungen, die in Colubrid eingepflegt wurden zurückgespielt.
TUFKAB – the user formerly known as blackbird
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Beitragvon mitsuhiko » Mittwoch 25. Januar 2006, 18:40

Heute war update auf 0.8. Änderungen:
* support für statische dateien
* viele kleine fehler entfernt
* kann jetzt apache configs erstellen
* fehler in FILES entfernt
TUFKAB – the user formerly known as blackbird
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Donnerstag 2. Februar 2006, 10:21

Was hat es eigentlich für einen Sinn, das self.request.GET und self.request.POST ein komisches MultiDict sind???
Das doofe, bei einem self.request.echo(self.request.GET) kommt nur ein <instanz BlaBla> raus und kein nützlicheres {"BlaBla": "schnup"}

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Beitragvon mitsuhiko » Donnerstag 2. Februar 2006, 14:09

jens hat geschrieben:Was hat es eigentlich für einen Sinn, das self.request.GET und self.request.POST ein komisches MultiDict sind???
Das doofe, bei einem self.request.echo(self.request.GET) kommt nur ein <instanz BlaBla> raus und kein nützlicheres {"BlaBla": "schnup"}


Denk an diesen Fall:

Code: Alles auswählen

<form action="" method="post">
  <input type="text" name="coord">
  <input type="text" name="coord">
  <input type="text" name="coord">
  <input type="text" name="coord">
  <input type="text" name="coord">
  <input type="text" name="coord">
  <input type="text" name="coord">
  <input type="submit" value="Absenden" />
</form>


Wie soll er den ohne multidict die Variablen ausgeben?
TUFKAB – the user formerly known as blackbird
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Donnerstag 2. Februar 2006, 15:03

Sorry, das verstehe ich erstmal nicht... OK, man kann mehrere HTML-Form.-Felder gleich benennen...

Beim normalen CGI kommt sowas raus:

Code: Alles auswählen

FieldStorageData = cgi.FieldStorage()

data = {}
for key in FieldStorageData.keys():
    data[key] = FieldStorageData.getvalue(key)
print data

[code=]{"jau":["wert1","wert2","wert3"]}[/code]

Geht also auch ohne... Nur, warum sollte es überhaupt mehrere Felder mit gleichen Namen geben???

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Beitragvon mitsuhiko » Donnerstag 2. Februar 2006, 15:05

jens hat geschrieben:Sorry, das verstehe ich erstmal nicht... OK, man kann mehrere HTML-Form.-Felder gleich benennen...

Beim normalen CGI kommt sowas raus:

Code: Alles auswählen

FieldStorageData = cgi.FieldStorage()

data = {}
for key in FieldStorageData.keys():
    data[key] = FieldStorageData.getvalue(key)
print data

[code=]{"jau":["wert1","wert2","wert3"]}[/code]

Geht also auch ohne... Nur, warum sollte es überhaupt mehrere Felder mit gleichen Namen geben???


Ich nutze das in vielen Fällen. Und im MultiDict gibts __geitem__ immer das letzte element in der liste zurück und getlist die komplette liste für einen key.
TUFKAB – the user formerly known as blackbird
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Donnerstag 2. Februar 2006, 15:06

blackbird hat geschrieben:Ich nutze das in vielen Fällen.

Was jetzt "Multidict" oder "mehrere HTML-Felder mit gleichem Namen" ?

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Beitragvon mitsuhiko » Donnerstag 2. Februar 2006, 15:10

jens hat geschrieben:
blackbird hat geschrieben:Ich nutze das in vielen Fällen.

Was jetzt "Multidict" oder "mehrere HTML-Felder mit gleichem Namen" ?

Ersteres mit der Prämisse, dass ich Letzteres auch tue. :wink:
TUFKAB – the user formerly known as blackbird

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder