Bottle: Micro Web Framework

Stellt hier eure Projekte vor.
Internetseiten, Skripte, und alles andere bzgl. Python.
MrNiceTry
User
Beiträge: 80
Registriert: Samstag 7. November 2009, 10:32

Defnull hat geschrieben:
MrNiceTry hat geschrieben: Sorry, ich hab jetzt nochmals gesucht.
Aber die Stelle, wo das im Tutorial steht, kann ich nicht finden.
Dann schau dir mal den Code-Schnipsel direkt über dem von dir zitierten Code-Beispiel an. Da steht ne lange import-reihe inklusive default_app
Richtig.
Aber diese Zeile würde ich der Datei todo.py zuordnen !

Weil danach kommt der Satz:

Code: Alles auswählen

After that, create a file called "adapter.wsgi" with the following content:
und in adapter.wsgi sollen doch wohl kaum "route, run, debug, template, request, validate, error" mit importiert werden.

Ich möchte da jetzt aber keine Diskussion losschlagen, wozu auch.

Danke für Deine Hilfe.
Benutzeravatar
webwurst
User
Beiträge: 7
Registriert: Sonntag 7. Februar 2010, 02:23

In der Methode "static_file" kannst du vielleicht die Zeile

Code: Alles auswählen

header['Content-Disposition'] = 'attachment; filename=%s' % download
durch folgende ersetzen

Code: Alles auswählen

header['Content-Disposition'] = 'attachment; filename="%s"' % download
Also Anführungszeichen um den Dateinamen. Ohne zeigt mir der Firefox bei Dateinamen mit Leerzeichen nur das erste Wort an, mit den ganzen Dateinamen.

Besten Gruß!
MrNiceTry
User
Beiträge: 80
Registriert: Samstag 7. November 2009, 10:32

Hab wahrscheinlich 0.6.4 auf dem Server.

Wie kann ich die aktuelle Version feststellen?
Wie kann ich die aktuelle Version updaten?


Danke.
Benutzeravatar
webwurst
User
Beiträge: 7
Registriert: Sonntag 7. Februar 2010, 02:23

Guck in die Datei "bottle.py". Dort müsste so ungefähr um die Zeile 85 eine Versions-Info stehen.

Code: Alles auswählen

__version__ = '0.7.0a'
Updaten kannst du ganz einfach indem du die Datei "bottle.py" ersetzt. Nimm diesen Link: http://github.com/defnull/bottle/raw/master/bottle.py
MrNiceTry
User
Beiträge: 80
Registriert: Samstag 7. November 2009, 10:32

webwurst hat geschrieben:Guck in die Datei "bottle.py". Dort müsste so ungefähr um die Zeile 85 eine Versions-Info stehen.

Code: Alles auswählen

__version__ = '0.7.0a'
Updaten kannst du ganz einfach indem du die Datei "bottle.py" ersetzt. Nimm diesen Link: http://github.com/defnull/bottle/raw/master/bottle.py
Ich habe bottle mit easy_install installiert.
Und jetzt finde ich bottle.py nicht. :(
In welchem Verzeichnis wird's versenkt?

Danke.
frabron
User
Beiträge: 306
Registriert: Dienstag 31. März 2009, 14:36

Das kommt wohl aufs Betriebssystem an. Unter *nix irgendwo unter /usr/local/lib/python2.5/site-packages, zumindest bei den debian-basierten. Unter Windows bietet sich das Installationsverzeichnis an. Die Ordnerstruktur ist da ähnlich (Lib/site-packages)
Benutzeravatar
snafu
User
Beiträge: 6850
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Code: Alles auswählen

import bottle
bottle.__file__
...sollte dir weiter helfen.
Benutzeravatar
Defnull
User
Beiträge: 778
Registriert: Donnerstag 18. Juni 2009, 22:09
Wohnort: Göttingen
Kontaktdaten:

Bottle per easy_install hat die Version 0.6.4, da es keine neuere easy_install Version gibt. Updaten kann man mit "easy_install -U bottle", sobald ein neuer Release raus kommt. Das macht aber erst Sinn, wenn die 0.7 Version von github stabil und dokumentiert genug für einen Release ist. Bis dahin kann man entweder die stabile 0.6.4 Version nehmen, oder die Feature-reiche, verbesserte aber noch im Test befindliche 0.7 Version von github.
Bottle: Micro Web Framework + Development Blog
MrNiceTry
User
Beiträge: 80
Registriert: Samstag 7. November 2009, 10:32

Defnull hat geschrieben:Bottle per easy_install hat die Version 0.6.4, da es keine neuere easy_install Version gibt. Updaten kann man mit "easy_install -U bottle", sobald ein neuer Release raus kommt. Das macht aber erst Sinn, wenn die 0.7 Version von github stabil und dokumentiert genug für einen Release ist. Bis dahin kann man entweder die stabile 0.6.4 Version nehmen, oder die Feature-reiche, verbesserte aber noch im Test befindliche 0.7 Version von github.
Hab die bottle.py gefunden.
Danke auch snafu und frabron.

und natürlich Defnull.
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

Defnull hat geschrieben:Ich persönlich verwende lieber Unterstriche als Bindestriche in URLs, wenn es darum geht, Leerstellen zu markieren. (Auch wenn Leerstellen in URLs möglich sind, das %20 ist hässlich). Außerdem wird in Python der Unterstrich oft in längeren Funktionsnamen verwende. Diese ungefragt in '/' zu übersetzen halte ich für unintuitiv und fehlerträchtig. Die Doppel-Unterstriche sind da expliziter, finde ich.

Grundproblem ist ja, dass Python Bezeichner aus Unterschtrichen, Zahlen und Buchstaben will. Das heißt uns steht ein eher kleines Eingabealphabet zur Verfügung.

Daher dachte ich, man könnte Großbuchstaben für Sonderzeichen verwenden. URLs sollten IMHO case-insensitive sein, sodass uns die Kleinbuchstaben für die Ausgestaltung der Buchstaben reichen sollten.

Alternativ kann man ja um die Großbuchstaben Unterstriche setzen, um die Sonderzeichen zu verdeutlichen.

Sonderzeichen könnten dann auch reguläre Ausdrücke abbilden (Ein I steht dann für Zahlen, die dann entsprechend evaluiert werden).
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
MrNiceTry
User
Beiträge: 80
Registriert: Samstag 7. November 2009, 10:32

Meine Client-HTML soll eine datei.css vom Apache-Bottle ziehen.

Ich habe mal mit den Tutorial-Beispielen rumgehext. Aber irgendwie komme ich nicht dahinter.

Was ist der richtige Weg?

Danke.
frabron
User
Beiträge: 306
Registriert: Dienstag 31. März 2009, 14:36

Ich hab für so statischen Sachen (Bilder, CSS, Javascript) einen Alias im Virtualhost vom Indianer erzeugt und rufe den über /static ab. Da muss man Bottle nicht unbedingt mit belästigen. Ansonsten kannst du auch mal ein paar Seiten im Thread zurückblättern, da müsste irgendwo ein paar Posts von mir sein, die sich mit ähnlichen Fragen beschäftigen und das mittels Regex in Bottle erledigen. Da bin ich aber von ab mittlerweile ...
orschiro
User
Beiträge: 60
Registriert: Donnerstag 11. Dezember 2008, 16:10
Kontaktdaten:

Hallo Leute,

ich beschäftige mich zurzeit auch etwas mit Bottle und habe auch eine kleine Applikation geschrieben. Diese würde ich nun gerne mittels FCGI und meinem Nginx-Server produktiv testen.

Wie ist hier zu verfahren? Das Tutorial erklärt die Nutzung mit WSGI. Dieses lässt sich aber nicht mit Nginx nutzen.

Danke und Grüße
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

orschiro hat geschrieben:Das Tutorial erklärt die Nutzung mit WSGI. Dieses lässt sich aber nicht mit Nginx nutzen.
Doch, wir nutzen das im Produktiveinsatz. Ich kann dir die Konfigurationsdatei schicken, wenn du möchtest.
orschiro
User
Beiträge: 60
Registriert: Donnerstag 11. Dezember 2008, 16:10
Kontaktdaten:

Das funktioniert?

Gerne. :-)
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

http://paste.pocoo.org/show/183252/ Dateiname steht in der ersten Zeile.

http://paste.pocoo.org/show/183253/ Hier eine Beispielkonfiguration für eine Seite.

Ich kann mich allerdings erinnern, dass die nginx-Version, die bei uns läuft, gepatcht ist. Wenns nicht klappt, sag einfach mal, dann forsche ich nach.
MrNiceTry
User
Beiträge: 80
Registriert: Samstag 7. November 2009, 10:32

Gibt es eine Möglichkeit Templates mit Pythoncode aus einer Datenbank laufen zu lassen?

Gibt es was Fertiges?
Kann ich das selber bauen?
Ist da was geplant?

Danke.
orschiro
User
Beiträge: 60
Registriert: Donnerstag 11. Dezember 2008, 16:10
Kontaktdaten:

Hallo Dauerbaustelle,

Nginx scheint wirklich einen Patch zu benötigen. Ich habe die Änderungen aufgenommen und erhalte bei einem Reload folgende Meldung:
:: Checking configuration [BUSY] [emerg]: unknown directive "wsgi_var" in /etc/nginx/wsgi_vars:2
configuration file /etc/nginx/conf/nginx.conf test failed
Gibt es irgendwo einen Hinweis wie Nginx zu patchen ist?

Eingesetzt wird nginx 0.7.65-1

Danke und Grüße
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

MrNiceTry hat geschrieben:Gibt es eine Möglichkeit Templates mit Pythoncode aus einer Datenbank laufen zu lassen?
Warum willst du denn sowas? Selbst bauen kannst du das natürlich :)
fred.reichbier
User
Beiträge: 155
Registriert: Freitag 29. Dezember 2006, 18:27

Hallöchen,

Du müsstest nginx mit mod_wsgi kompilieren, das ist nämlich normalerweise nicht dabei (3rd party). Wie das geht, steht hier: http://wiki.nginx.org/NginxNgxWSGIModule. Falls du Probleme bekommst, die so aussehen, spielste dann noch den oben schon von Dauerbaustelle erwähnten Patch ein wie hier beschrieben.

Sorry, hab schon länger keinen nginx mehr kompiliert, könnte sein, dass ich irgendwas zu erwähnen vergessen habe ;)

Gruß,

Fred
Antworten