Cookies und Colubrid
Kann mir jemand hier oder im wiki ein Beispiel geben wie ich bei Colubrid mit Cookies arbeiten kann ?
Ich bin Anfänger und durch dieses Forum im Zusammenhang mit Python und Webprogrammierung auf colubrid gestoßen, ich probiere schon seit einer weile damit rum habe aber keinen Erfolg.
Danke im Voraus
Ich bin Anfänger und durch dieses Forum im Zusammenhang mit Python und Webprogrammierung auf colubrid gestoßen, ich probiere schon seit einer weile damit rum habe aber keinen Erfolg.
Danke im Voraus
- jens
- Moderator
- Beiträge: 8483
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Das ist eine gute Frage, die ich mir auch demächst mal stellen muß, bis dahin kann ich dir allerdings nicht weiter helfen 
Schau dir mal die Sourcen an:
http://wsgiarea.pocoo.org/trac/browser/ ... ls.py#L235
http://wsgiarea.pocoo.org/trac/browser/ ... st.py#L202
IMHO ist self.request.COOKIE ein Art Dict...

Schau dir mal die Sourcen an:
http://wsgiarea.pocoo.org/trac/browser/ ... ls.py#L235
http://wsgiarea.pocoo.org/trac/browser/ ... st.py#L202
IMHO ist self.request.COOKIE ein Art Dict...
CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
-
- User
- Beiträge: 1790
- Registriert: Donnerstag 28. Oktober 2004, 16:33
- Wohnort: Graz, Steiermark - Österreich
- Kontaktdaten:
Aber nur eine Art. Es ist ein Cookie Objekt. Beschrieben ist es hier: http://docs.python.org/lib/module-Cookie.htmljens hat geschrieben:IMHO ist self.request.COOKIE ein Art Dict...
Es ist aber leicht Verändert und merkt sich automatisch die Änderungen und passt die Header an. Also braucht man kein setcookie wie in PHP.
TUFKAB – the user formerly known as blackbird
- jens
- Moderator
- Beiträge: 8483
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Das schreit mal wieder nach einem neuen Beispiel unter [wiki]Colubrid[/wiki]


CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Gut, also ist self.request.COOKIES ein Cookie-Objekt abgeleitet von dem Cookiemodul aus Python.
Wenn ich jetzt so was mache wie self.request.COOKIES['id'] = '12345' dann erscheint im Header an den Client auch ein "Set-Cookie:id=12345;",
wie aber bekomme ich denn den Cookie "ausgelesen" ?
Ein self.request.COOKIES.load(os.environ['HTTP_COOKIE']) fällt doch flach oder übersehe ich hier was ?
Mal eine ganz andere Frage wegen der Mühen zum umstieg auf wsgi, ist es zu erwarten das z.B. mod_python irgendwann wsgi unterstützt oder
muss man davon ausgehen das es bezogen auf Apache nur als cgi bzw. fastcgi laufen wird ?
Wenn ich jetzt so was mache wie self.request.COOKIES['id'] = '12345' dann erscheint im Header an den Client auch ein "Set-Cookie:id=12345;",
wie aber bekomme ich denn den Cookie "ausgelesen" ?
Ein self.request.COOKIES.load(os.environ['HTTP_COOKIE']) fällt doch flach oder übersehe ich hier was ?
Mal eine ganz andere Frage wegen der Mühen zum umstieg auf wsgi, ist es zu erwarten das z.B. mod_python irgendwann wsgi unterstützt oder
muss man davon ausgehen das es bezogen auf Apache nur als cgi bzw. fastcgi laufen wird ?
- jens
- Moderator
- Beiträge: 8483
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Ich hab mich noch nicht damit beschäftigt, aber was spuckt ein self.request.echo(self.request.COOKIES) aus?beyama hat geschrieben:wie aber bekomme ich denn den Cookie "ausgelesen" ?
Ich schätze du kannst wie auf ein dict auf die cookies zugreifen...
CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
-
- User
- Beiträge: 1790
- Registriert: Donnerstag 28. Oktober 2004, 16:33
- Wohnort: Graz, Steiermark - Österreich
- Kontaktdaten:
Code: Alles auswählen
self.request.COOKIES['mein_cookie'].value

TUFKAB – the user formerly known as blackbird
Ich weiß nicht genau was es mit dem echo auf sich hat, aber ich vermute das es etwas ausgibt.
Mein Problem ist aber nicht wie ich an Daten ran komme die ich in das Cookieobjekt gesteckt habe bzw. wie ich sie an den Client sende (die Header werden ja automatisch angepasst), mein Problem ist wie ich die Cookiedaten vom Client wieder zurück bekomme.
Was ja bei der Standard Cookie-Klasse mit der Methode read() passiert.
Mein Problem ist aber nicht wie ich an Daten ran komme die ich in das Cookieobjekt gesteckt habe bzw. wie ich sie an den Client sende (die Header werden ja automatisch angepasst), mein Problem ist wie ich die Cookiedaten vom Client wieder zurück bekomme.
Was ja bei der Standard Cookie-Klasse mit der Methode read() passiert.
- jens
- Moderator
- Beiträge: 8483
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
(haben sich die Postings überschnitten?)
self.request.echo(txt) ist quasi das selbe wie self.request.write(str(txt))
self.request.echo(txt) ist quasi das selbe wie self.request.write(str(txt))

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
-
- User
- Beiträge: 1790
- Registriert: Donnerstag 28. Oktober 2004, 16:33
- Wohnort: Graz, Steiermark - Österreich
- Kontaktdaten:
Nicht ganz. Eher das hier:jens hat geschrieben:self.request.echo(txt) ist quasi das selbe wie self.request.write(str(txt))
Code: Alles auswählen
def echo(self, *args):
if not args:
raise ArgumentError, 'no data given'
for arg in args:
self.write(str(arg))

TUFKAB – the user formerly known as blackbird
Ja Postings haben sich überschnitten. Ich kann zu meiner Schande
an der Stelle nicht mitreden, da ich nicht weiß was dieses *args
bedeutet (ich denke da immer an Zeiger), aber wie gesagt ich bin Python
Anfänger und meine Motivation die Sprache zu lernen liegt momentan
Primär in der Webprogrammierung ansonsten bin ich eher an Embeddedsachen
interessiert, aber egal.
Ich habe gerade einfach das Problem das ich nicht weiß wie ich die
Cookie-Daten vom Client wieder zurück bekomme.
an der Stelle nicht mitreden, da ich nicht weiß was dieses *args
bedeutet (ich denke da immer an Zeiger), aber wie gesagt ich bin Python
Anfänger und meine Motivation die Sprache zu lernen liegt momentan
Primär in der Webprogrammierung ansonsten bin ich eher an Embeddedsachen
interessiert, aber egal.
Ich habe gerade einfach das Problem das ich nicht weiß wie ich die
Cookie-Daten vom Client wieder zurück bekomme.
-
- User
- Beiträge: 1790
- Registriert: Donnerstag 28. Oktober 2004, 16:33
- Wohnort: Graz, Steiermark - Österreich
- Kontaktdaten:
Du willst also Daten zum Webbrowser des Users schicken?
Schau dir mal dieses Beispiel an:
self.request.write('string') schickt einfach Daten zum Client. (Falls du das meinst)
Schau dir mal dieses Beispiel an:
Code: Alles auswählen
from colubrid import BaseApplication, execute
from time import time
class Application(BaseApplication):
def process_request(self):
if 'zeit' in self.request.COOKIES:
t = self.request.COOKIES['zeit'].value
self.request.write('Dein Letzter Besuch war um %s.' % t)
else:
self.request.COOKIES['zeit'] = time()
self.request.write('Das ist dein Erster Besuch.')
app = Application
if __name__ == '__main__':
execute()
TUFKAB – the user formerly known as blackbird
Ich meine schon das in deinem Code-Beispiel, aber das funktioniert (bei mir) nicht.
Ich habe es erst versucht, in das ein zu flechten was ich bis jetzt mit colubrid
gebaut hab, ging aber nicht, dann habe ich deine Variante ausprobiert und sie ging ebenfalls nicht.
Man kommt immer wieder bei "Das ist dein Erster Besuch." raus.
Wenn ich mir die http Header anschaue, dann sehe ich das Firefox
zwar das set-cookie... bekommt aber es nicht wieder zurück gibt.
Auch wenn ich dem Browser so einstelle das er mich vor dem annehmen
von Cookies fragt, reagiert er gar nicht auf den Cookie von Colubrid.
Ich kann mir das nicht erklären.
Ich habe es erst versucht, in das ein zu flechten was ich bis jetzt mit colubrid
gebaut hab, ging aber nicht, dann habe ich deine Variante ausprobiert und sie ging ebenfalls nicht.
Man kommt immer wieder bei "Das ist dein Erster Besuch." raus.
Wenn ich mir die http Header anschaue, dann sehe ich das Firefox
zwar das set-cookie... bekommt aber es nicht wieder zurück gibt.
Auch wenn ich dem Browser so einstelle das er mich vor dem annehmen
von Cookies fragt, reagiert er gar nicht auf den Cookie von Colubrid.
Ich kann mir das nicht erklären.