Bottle: Micro Web Framework

Stellt hier eure Projekte vor.
Internetseiten, Skripte, und alles andere bzgl. Python.
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

Hyperion fragt deswegen, weil er die Vermutung hat, dass es für dein Problem eine einfachere Lösung gibt als die von dir erdachte. Wenn du das Problem erklärst, kann man dir vielleicht Hinweise geben, wie man das ohne diese Starter-Prüfung lösen kann.
Benutzeravatar
noisefloor
User
Beiträge: 3882
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

kann man ermitteln, welcher Nutzer den Prozess gestartet bzw. unser welchem Nutzer er läuft?

Wenn's Apache sollte der Nutzer ziemlich sicher ein anderen sein als ein manueller Start?

BTW: Reicht der Port wirklich nicht? Default wäre ja Port 80 vs. Port 8080 (oder ein anderen, unprivilegierter Port).

Gruß, noisefloor


P.S.: Es würde mich auch interessieren, was in Abhängigkeiten von Startmethode anders sein soll. :-)
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

noisefloor hat geschrieben:kann man ermitteln, welcher Nutzer den Prozess gestartet bzw. unser welchem Nutzer er läuft?
Das kann man definitiv. Schau mal im os modul nach...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Da gibt es keinen erkennbaren Unterschied und selbst wenn da einer wäre dürfte man sich darauf nicht unbedingt verlassen können.

Nutz für solche Fälle einfach unterschiedliche Konfigurationen.
Benutzeravatar
snafu
User
Beiträge: 6754
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Bottle-Bericht im freien Magazin 02/2011 (ab Seite 23).

(Ich sehe gerade, Marcel ist da selbst im Interview...)
Benutzeravatar
noisefloor
User
Beiträge: 3882
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,
snafu hat geschrieben:Bottle-Bericht im freien Magazin 02/2011 (ab Seite 23).

(Ich sehe gerade, Marcel ist da selbst im Interview...)
Wenn schon, dann auch komplett. ;-)

Gruß, noisefloor
Benutzeravatar
snafu
User
Beiträge: 6754
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

@noisefloor: Was meintest du jetzt genau mit "komplett"?
Benutzeravatar
noisefloor
User
Beiträge: 3882
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

das ich beim Schreiben des Artikels die Gelegenheit genutzt habe, Marcel (per E-Mail) zu Interview. Kommt halt nicht sooo oft vor, dass ich was für FM Schreibe und direkt den Autor der Software dazu befragen kann.

Gruß, noisefloor
Benutzeravatar
snafu
User
Beiträge: 6754
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Ah, mkay. Wusste ja nicht, dass der Artikel von dir ist.
Benutzeravatar
lynadge
User
Beiträge: 112
Registriert: Sonntag 4. April 2010, 10:17

Schöner Artikel. Hat Spaß gemacht ihn zu lesen.
Benutzeravatar
Defnull
User
Beiträge: 778
Registriert: Donnerstag 18. Juni 2009, 22:09
Wohnort: Göttingen
Kontaktdaten:

Version 0.9 ist veröffentlicht :)

Changelog: http://bottlepy.org/docs/dev/changelog.html#release-0-9
Download: http://pypi.python.org/pypi/bottle/0.9.1

Die größte Neuerung ist, wie angekündigt, eine neue Plugin API. Darauf bin ich besonders stolz, die kann nämlich deutlich mehr als die üblichen '[before/after]_request' callbacks und ist trotzdem einfach zu benutzen. Zwei Plugins habe ich als Beispiele schon dazu gepackt:

bottle-sqlite: Regelt den ganzen connect/commit/close kram für eine sqlite3 Datenbank.
bottle-werkzeug: Integriert die "werkzeug" Bibliothek (request/response Objekte und den interaktiven Debugger) und ist meine Antwort auf die "Flask ist besser weil wegen werkzeug" Argumentation.

Dazu gibt es ne Wagenladung kleiner Verbesserungen. Ein Update lohnt sich auf jeden Fall.

Danke an alle, die mit geholfen haben :) Feedback ist natürlich willkommen.
Bottle: Micro Web Framework + Development Blog
fana
User
Beiträge: 10
Registriert: Montag 16. April 2007, 11:44

Genial. Danke!
Benutzeravatar
noisefloor
User
Beiträge: 3882
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

kommt als nächstes eigentlich Version 1.0 oder 0.10?

Gruß, noisefloor
Benutzeravatar
Defnull
User
Beiträge: 778
Registriert: Donnerstag 18. Juni 2009, 22:09
Wohnort: Göttingen
Kontaktdaten:

Da bottle noch nicht fertig ist, sehr wahrscheinlich 0.10

Als nächstes werde ich wohl das Request-Object auf bohren. Ein rewrite der Template Engine liegt auch schon ne Weile in nem separaten Branch. Dann will ich noch multipart integrieren und den Python 3 Support perfektionieren. Ist also noch viel zu tun :)
Bottle: Micro Web Framework + Development Blog
Benutzeravatar
snafu
User
Beiträge: 6754
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Und ich glaube, es würde in einigen Fällen hilfreich sein, wenn `static_file()` auch ein Dateiobjekt anstatt nur den Dateinamen annehmen könnte. Insbesondere im Hinblick auf "`StringIO()`-Geschichten", d.h. wo Dateien auf Anfrage generiert werden.
BlackJack

@snafu: Dynamisch generierte Dateien bei einer Funktion die `static_file()` heisst, klingt irgendwie falsch IMHO.
Benutzeravatar
snafu
User
Beiträge: 6754
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Ja, das stimmt. Es ging mir vorwiegend um die Funktionalität. Bei Bottle müsste man in solchen Fällen AFAIK den unschönen Umweg über temporäre Dateien gehen.
Benutzeravatar
Defnull
User
Beiträge: 778
Registriert: Donnerstag 18. Juni 2009, 22:09
Wohnort: Göttingen
Kontaktdaten:

snafu hat geschrieben:Und ich glaube, es würde in einigen Fällen hilfreich sein, wenn `static_file()` auch ein Dateiobjekt anstatt nur den Dateinamen annehmen könnte. Insbesondere im Hinblick auf "`StringIO()`-Geschichten", d.h. wo Dateien auf Anfrage generiert werden.
Bringt nicht viel, da die meisten Features von static_file() nur funktionieren, wenn es sich um eine echte Datei handelt. Du kannst aber auch einfach eine StringIO() Instanz zurück geben, ohne static_file() zu benutzen. Das geht genau so.

Ich will mittelfristig aber sowieso die Funktionalität von static_file() nach Response() verschieben, damit die ebenfalls mit If-ETag, If-Modified-Since u.s.w. umgehen kann. Dann kann man Response() manuell instantiieren und z.B. selbst berechnete ETags benutzen.
Bottle: Micro Web Framework + Development Blog
Benutzeravatar
snafu
User
Beiträge: 6754
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Defnull hat geschrieben:Du kannst aber auch einfach eine StringIO() Instanz zurück geben, ohne static_file() zu benutzen. Das geht genau so.
Ah, verstehe. Ist manchmal einfacher als man denkt. :)

Das mit der Auslagerung ins Response-Objekt ist wahrscheinlich wirklich keine schlechte Idee.
Benutzeravatar
noisefloor
User
Beiträge: 3882
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

snafu +1 - würde mir bzw. meinen Applikation auch sehr nützen. :-)

EDIT: Mist, nicht alle Posts vorher gelesen. Also streicht dieses Posting.

Gruß, noisefloor
Antworten