Möchte hier noch mal auf meine Wiki WSGI-App, die ich im Laufe eines Projekts erstelle (s. http://www.python-forum.de/topic-22387.html ), verweisen.
Die aktuelle Version verwendet den DAL von web2py, das DB-Model sollte damit mit dem GAE Datastore und auch mit allen gängigen SQL Datenbanken laufen. Bisher sind GAE und wsgiref+sqlite erfolgreich getestet.
Das Wiki selbst ist bisher noch im Prototyp-Stadium, Seiten anlegen und bearbeiten funktioniert allerdings schon. "Markdown" wird als Syntax verwendet (aktivierte Extensions: 'codehilite', 'toc', 'wikilinks'). Wie der Namen schon sagt, ist das Rahmenwerk im Hintergrund bottle.
App: http://gbottle-wiki.appspot.com/
Repo: http://bitbucket.org/ms4py/gbottle-wiki/
@defnull: Ich habe vorerst deine "pygments.css" für das Highlighting genommen. Geht das in Ordnung? Soll ich einen Verweis in der CSS hinterlassen?
Portierbare GAE Webapp - (g)bottle-wiki
Hattest du nicht gemeint, dein Wiki-Modell wäre komplexer als einfach nur eine Tabelle mit zwei Attributen Titel und Text? Mehr erkenne ich aber in dem Quelltext nicht. Außerdem vermisse ich Transaktionen, die doch bei der GAE zwingend notwendig sind, um Daten sicher zu ändern. Was passiert, wenn `create_page` nicht klappt, weil ein anderer es mit dem selben Titel zur selben Zeit macht? Was passiert, wenn `save_content` für eine nicht-existierende Seite aufgerufen wird (es passiert eine Exception)? IMHO müsste das Anlegen oder Ändern einer Seite die üblichen atomare test-and-set-Semantik haben bzw. das, was mysql/sqlite mit "insert or replace into" erreicht. Die Seite übrigens schon in der DB anzulegen, wenn man nur den Editor für eine nicht-existende Seite aufruft, finde ich kein gutes Design. Das würde ich (siehe oben) erst beim Speichern machen.
Ich sehe auch keine Behandlung von den üblichen Encoding-Problemen, wenn man URLs bzw. Seitennamen mit Sonderzeichen hat. Nicht wichtig für die DB, aber IMHO ein wichtiger Aspekt bei der Beurteilung eines Web-Rahmenwerks, denn darum möchte ich mich nicht "zu Fuß" kümmern müssen. Das dein Beispiel außerdem noch XSS-anfällig ist, muss ich nicht weiter erwähnen, oder? :)
Wenn das Beispiel für einen Vortrag geschrieben ist, würde ich empfehlen, noch mal einen Schritt zurückzutreten und zu überlegen, was es eigentlich demonstrieren soll. Meine Anmerkungen sind in diesem Fall total irrelevant. Und das es prinzipiell geht, wird wohl auch niemand anzweifeln. Spannend wäre IMHO doch eher die Frage, was muss ich tun, wo hilft mir das Rahmenwerk, was ist doof.
Ein guter Indikator ist, ob man jeweils ein Konzept auf eine (Powerpoint-)Folie bekommt, ohne die Schrift sagen wir mal kleiner als 24pt zu machen. Wenn das nicht geht, ist das Rahmenwerk nicht gut genug...
Stefan
Ich sehe auch keine Behandlung von den üblichen Encoding-Problemen, wenn man URLs bzw. Seitennamen mit Sonderzeichen hat. Nicht wichtig für die DB, aber IMHO ein wichtiger Aspekt bei der Beurteilung eines Web-Rahmenwerks, denn darum möchte ich mich nicht "zu Fuß" kümmern müssen. Das dein Beispiel außerdem noch XSS-anfällig ist, muss ich nicht weiter erwähnen, oder? :)
Wenn das Beispiel für einen Vortrag geschrieben ist, würde ich empfehlen, noch mal einen Schritt zurückzutreten und zu überlegen, was es eigentlich demonstrieren soll. Meine Anmerkungen sind in diesem Fall total irrelevant. Und das es prinzipiell geht, wird wohl auch niemand anzweifeln. Spannend wäre IMHO doch eher die Frage, was muss ich tun, wo hilft mir das Rahmenwerk, was ist doof.
Ein guter Indikator ist, ob man jeweils ein Konzept auf eine (Powerpoint-)Folie bekommt, ohne die Schrift sagen wir mal kleiner als 24pt zu machen. Wenn das nicht geht, ist das Rahmenwerk nicht gut genug...
Stefan
Deshalb ist es ja noch ein Prototypsma hat geschrieben:Hattest du nicht gemeint, dein Wiki-Modell wäre komplexer als einfach nur eine Tabelle mit zwei Attributen Titel und Text? Mehr erkenne ich aber in dem Quelltext nicht.

Mhh, ich bin eigentlich davon ausgegangen, dass der DAL automatisch Transaktionen verwaltet. Aber das ist leider nicht so. Vielleicht ist das mit der Portabilität doch keine so gute Idee?!sma hat geschrieben:Außerdem vermisse ich Transaktionen, die doch bei der GAE zwingend notwendig sind, um Daten sicher zu ändern. Was passiert, wenn `create_page` nicht klappt, weil ein anderer es mit dem selben Titel zur selben Zeit macht? Was passiert, wenn `save_content` für eine nicht-existierende Seite aufgerufen wird (es passiert eine Exception)? IMHO müsste das Anlegen oder Ändern einer Seite die üblichen atomare test-and-set-Semantik haben bzw. das, was mysql/sqlite mit "insert or replace into" erreicht.
Das ist mir auch schon aufgefallensma hat geschrieben:Die Seite übrigens schon in der DB anzulegen, wenn man nur den Editor für eine nicht-existende Seite aufruft, finde ich kein gutes Design. Das würde ich (siehe oben) erst beim Speichern machen.

"Prototyp"sma hat geschrieben:Ich sehe auch keine Behandlung von den üblichen Encoding-Problemen, wenn man URLs bzw. Seitennamen mit Sonderzeichen hat. Nicht wichtig für die DB, aber IMHO ein wichtiger Aspekt bei der Beurteilung eines Web-Rahmenwerks, denn darum möchte ich mich nicht "zu Fuß" kümmern müssen. Das dein Beispiel außerdem noch XSS-anfällig ist, muss ich nicht weiter erwähnen, oder?

Das Problem ist, es handelt sich nicht nur um einen Vortrag, ich muss zum einen eine kurze Abhandlung (25-35 Seiten) schreiben und einen Vortrag dazu halten. Es sollte also schon in die Tiefe gehen und einen wissenschaftlichen Charakter haben.sma hat geschrieben:Wenn das Beispiel für einen Vortrag geschrieben ist, würde ich empfehlen, noch mal einen Schritt zurückzutreten und zu überlegen, was es eigentlich demonstrieren soll. Meine Anmerkungen sind in diesem Fall total irrelevant. Und das es prinzipiell geht, wird wohl auch niemand anzweifeln. Spannend wäre IMHO doch eher die Frage, was muss ich tun, wo hilft mir das Rahmenwerk, was ist doof.
„Lieber von den Richtigen kritisiert als von den Falschen gelobt werden.“
Gerhard Kocher
http://ms4py.org/
Gerhard Kocher
http://ms4py.org/
- Defnull
- User
- Beiträge: 778
- Registriert: Donnerstag 18. Juni 2009, 22:09
- Wohnort: Göttingen
- Kontaktdaten:
Diese .css Dateien werden von pygments automatisch generiert. Ich erhebe daher keine Copyright-Ansprüchems4py hat geschrieben:@defnull: Ich habe vorerst deine "pygments.css" für das Highlighting genommen. Geht das in Ordnung? Soll ich einen Verweis in der CSS hinterlassen?

Bottle: Micro Web Framework + Development Blog