wiki.python.de defekt?
Verfasst: Montag 15. Mai 2006, 07:49
Passiert das nur bei mir (beim speichern einer Wiki Seite):
Deswegen speicher ich meine Änderung an [wiki]Colubrid/Cookie Handling[/wiki]mal hierhin:
Voller Traceback: http://www.ubuntuusers.de/paste/1094/Traceback (most recent call last):
File "/usr/lib/python2.4/site-packages/MoinMoin/request.py", line 1137, in run
handler(self.page.page_name, self)
File "/usr/lib/python2.4/site-packages/MoinMoin/wikiaction.py", line 638, in do_edit
savemsg = pg.saveText(savetext, rev, trivial=trivial, comment=comment)
File "/usr/lib/python2.4/site-packages/MoinMoin/PageEditor.py", line 848, in saveText
if not self.request.user.may.save(self, newtext, rev, **kw):
File "/usr/lib/python2.4/site-packages/MoinMoin/util/antispam.py", line 168, in save
invalidate_cache_necessary, blacklist_entries = getblacklist(request, pn, do_update)
File "/usr/lib/python2.4/site-packages/MoinMoin/util/antispam.py", line 112, in getblacklist
if isinstance(masterdate, datetime.datetime):
AttributeError: 'module' object has no attribute 'datetime'
Deswegen speicher ich meine Änderung an [wiki]Colubrid/Cookie Handling[/wiki]mal hierhin:
Code: Alles auswählen
#pragma description Wie man Cookies in Colubrid verwendet
Wie man Cookies in Colubrid bearbeitet, steht auf der Doku-Seite: http://wsgiarea.pocoo.org/colubrid/documentation/response/#cookie-management
Dennoch ist hier ein kleines Beispiel wie es geht:
'''ColubridCookieTest.py'''
{{{#!python
#!/usr/bin/python
# -*- coding: UTF-8 -*-
from colubrid import BaseApplication
from colubrid import HttpResponse
from time import time
cookiePath = "test"
class Application(BaseApplication):
def process_request(self):
self.response = HttpResponse()
pathInfo = self.request.environ.get('PATH_INFO', '')
pathInfo = pathInfo.strip("/")
if pathInfo.startswith("delete"):
self.response.delete_cookie('timestamp')
self.response.delete_cookie('counter')
self.response.write('Cookies wurde gelöscht!')
self.writeCookie()
self.writeContinue()
elif 'timestamp' in self.request.cookies:
t = self.request.cookies['timestamp'].value
self.response.write('<p>Dein Letzter Besuch war um %s.</p>' % t)
self.cookieCounter()
self.writeCookie()
self.response.write('<p><a href="delete">delete cookie</a></p>')
self.writeContinue()
else:
self.response.set_cookie(
'timestamp', time(),
path = cookiePath
)
self.response.write('<p>Das ist dein Erster Besuch.</p>')
self.cookieCounter()
self.writeCookie()
self.writeContinue()
return self.response
def cookieCounter(self):
""" Anzahl der Seitenabrufe """
if 'counter' in self.request.cookies:
count = self.request.cookies['counter'].value
count = int(count)
count += 1
else:
count = 1
self.response.set_cookie(
'counter', count,
path = cookiePath
)
self.response.write(
'<p>counter: %s</p>' % count
)
def writeContinue(self):
""" 'weiter'-Link in die Seite einbauen """
self.response.write(
'<p><a href="%(url)s">continue: "%(url)s"</a></p>' % {
"url": self.request.environ['SCRIPT_ROOT']
}
)
def writeCookie(self):
""" vorhandene Cookies anzeigen """
self.response.write(
"<fieldset><legend>cookies</legend>%s</fieldset>" % \
self.request.cookies
)
app = Application
if __name__ == '__main__':
from colubrid.debug import DebuggedApplication
# Funktionier nur, wenn der Dateiname stimmt!!!
app = DebuggedApplication('ColubridCookieTest:app')
from colubrid import execute
execute(app, reload=True)
}}}
== testen mit Colubird's Test-Server ==
Zum testen, einfach den Lokalen Testserver starten, mit:
{{{
python ColubridCookieTest.py
}}}
Der läuft dann auf Port 8080. Also im Browser auf '''http://localhost:8080''' gehen...
[[Tags(colubrid,wsgi,web)]]