time work for host 3:00 - 19:00 UTCLeonidas hat geschrieben:Ich würds ja mirrorn, aber der Host ist nicht verfügbarzoxzox3 hat geschrieben:wiki by bottle in 23 minuten
http://lega.selfip.com/page/23 (video 33Mb, Host ist nicht verfügbar, in der Nacht)
Bottle: Micro Web Framework
- Defnull
- User
- Beiträge: 778
- Registriert: Donnerstag 18. Juni 2009, 22:09
- Wohnort: Göttingen
- Kontaktdaten:
@file uploads:
Bottle uses cgi.FieldStorage to parse POST requests. Non-File data is flattened (request.POST['foo']='bar') but file uploads are not to preserve additional information: they have x.filename, x.value and x.file attributes. The latter points to a seek-able temporary file object. To copy big files to disk, you have to do this in smaller chunks to avoid memory exhaustion.
@redirect
According to HTTP (rfc2616), the Location-header MUST be an absolute URL. Relative or absolute paths are not allowed. That is why bottle guesses the parts that are not provided by the user. You may, however, specify a full URL (including http://) to bottle.redirect() and it will overwrite all other guessed settings.
For your usecase, the best solution would be to install a middleware to correct the the HTTP_HOST and SERVER_NAME environment fields. This way, bottle is able to guess the absolute URL correctly.
@video
I'll have a look as soon as it is available
Thanks!
@all:
Es ist einfacher für mich und den Fragenden, solche Fragen in Englisch zu beantworten. Ich hoffe, es stört hier keinen. Auf Wunsch übersetzte ich meine Beiträge aber auch ins Deutsche.
Bottle uses cgi.FieldStorage to parse POST requests. Non-File data is flattened (request.POST['foo']='bar') but file uploads are not to preserve additional information: they have x.filename, x.value and x.file attributes. The latter points to a seek-able temporary file object. To copy big files to disk, you have to do this in smaller chunks to avoid memory exhaustion.
Code: Alles auswählen
with open('/tmp/upload.file', 'wb') as target:
for chunk in bottle.request.POST['upload'].value.read(1024*10):
target.write(chunk)
According to HTTP (rfc2616), the Location-header MUST be an absolute URL. Relative or absolute paths are not allowed. That is why bottle guesses the parts that are not provided by the user. You may, however, specify a full URL (including http://) to bottle.redirect() and it will overwrite all other guessed settings.
For your usecase, the best solution would be to install a middleware to correct the the HTTP_HOST and SERVER_NAME environment fields. This way, bottle is able to guess the absolute URL correctly.
@video
I'll have a look as soon as it is available

@all:
Es ist einfacher für mich und den Fragenden, solche Fragen in Englisch zu beantworten. Ich hoffe, es stört hier keinen. Auf Wunsch übersetzte ich meine Beiträge aber auch ins Deutsche.
Bottle: Micro Web Framework + Development Blog
- mkesper
- User
- Beiträge: 919
- Registriert: Montag 20. November 2006, 15:48
- Wohnort: formerly known as mkallas
- Kontaktdaten:
Direkter Link zum Video ist: http://lega.selfip.com/uploads/23/wiki23min.flv
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Theora-Mirror (24/7 up, hohe Bandbreite, spielt in gängigen HTML5-Browsern).mkesper hat geschrieben:Direkter Link zum Video ist: http://lega.selfip.com/uploads/23/wiki23min.flv
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Es ist Deutschland hierDefnull hat geschrieben:@all:
Es ist einfacher für mich und den Fragenden, solche Fragen in Englisch zu beantworten. Ich hoffe, es stört hier keinen. Auf Wunsch übersetzte ich meine Beiträge aber auch ins Deutsche.

- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Danke dafür. Aber kurze Frage: Gibt es keinen Ton dazu? Oder ist das bei mir ein Problem?Leonidas hat geschrieben:Theora-Mirror (24/7 up, hohe Bandbreite, spielt in gängigen HTML5-Browsern).mkesper hat geschrieben:Direkter Link zum Video ist: http://lega.selfip.com/uploads/23/wiki23min.flv
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Also im Original-Video habe ich (mit mplayer) keine Tonspur finden können.Hyperion hat geschrieben:Danke dafür. Aber kurze Frage: Gibt es keinen Ton dazu? Oder ist das bei mir ein Problem?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Ok, dann wirds wohl keinen geben. Schade. So ist es leider irgend wie dröge anzugucken.Leonidas hat geschrieben:Also im Original-Video habe ich (mit mplayer) keine Tonspur finden können.Hyperion hat geschrieben:Danke dafür. Aber kurze Frage: Gibt es keinen Ton dazu? Oder ist das bei mir ein Problem?
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Wenn der Autor nichts dazu sagen wollte (weil er kein Mikrofon hat oder nicht gerne ins Video spricht) ist es besser ohne Ton, da kann man im Hintergrund ja noch wunderbar Webradio hörenHyperion hat geschrieben:Ok, dann wirds wohl keinen geben. Schade. So ist es leider irgend wie dröge anzugucken.

My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
*g* Hatten wir nicht erst in nem anderen Thread das Thema "Ablenkung"Leonidas hat geschrieben:Wenn der Autor nichts dazu sagen wollte (weil er kein Mikrofon hat oder nicht gerne ins Video spricht) ist es besser ohne Ton, da kann man im Hintergrund ja noch wunderbar Webradio hörenHyperion hat geschrieben:Ok, dann wirds wohl keinen geben. Schade. So ist es leider irgend wie dröge anzugucken.


Ein 'Ü' in einem Jinja2-Template brachte mir:
Unhandled Exception: UnicodeDecodeError('ascii',\xc3\x9cbersicht, 1138, 1139, 'ordinal not in range(128)')
Es hilft in bottle.py (Version 0.6.4) in Zeile 847 ein ".decode('utf-8')" anzuhängen. Siehe auch das Beispiel für einen
Jinja2 BaseLoader in der Jinja2 Doku.
Besten Dank für Bottle! Gefällt mir super!
Unhandled Exception: UnicodeDecodeError('ascii',\xc3\x9cbersicht, 1138, 1139, 'ordinal not in range(128)')
Es hilft in bottle.py (Version 0.6.4) in Zeile 847 ein ".decode('utf-8')" anzuhängen. Siehe auch das Beispiel für einen
Jinja2 BaseLoader in der Jinja2 Doku.
Besten Dank für Bottle! Gefällt mir super!
thiswebwurst hat geschrieben:Ein 'Ü' in einem Jinja2-Template brachte mir:
Unhandled Exception: UnicodeDecodeError('ascii',\xc3\x9cbersicht, 1138, 1139, 'ordinal not in range(128)')
Es hilft in bottle.py (Version 0.6.4) in Zeile 847 ein ".decode('utf-8')" anzuhängen. Siehe auch das Beispiel für einen
Jinja2 BaseLoader in der Jinja2 Doku.
Besten Dank für Bottle! Gefällt mir super!
use last version from source
Hatte mich neulich mal an einem kleinen Tutorial zu Bottle versucht: http://vimeo.com/9352480 - Viel Spaß.
Stefan
Stefan
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Danke dafür! Hat mir (wie immer) sehr gefallen 
Edit: evtl. hättest Du den kleinen "Trick" erwähnen können, dass load_page bei Nichtvorhandensein einer Seite einfach eine "leere" zurückliefert und man so neue Seiten anlegen kann.
Außerdem wäre ein Link zum Quellcode eine super Sache
(Hattest Du bei Deinen ersten Video Tuts ja auch)

Edit: evtl. hättest Du den kleinen "Trick" erwähnen können, dass load_page bei Nichtvorhandensein einer Seite einfach eine "leere" zurückliefert und man so neue Seiten anlegen kann.
Außerdem wäre ein Link zum Quellcode eine super Sache

-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Habe hier auch noch einen Theora-Mirror. H.264 komprimiert etwas besser, aber auf die paar Megabyte Unterschied kommt es auch nicht mehr an.sma hat geschrieben:Hatte mich neulich mal an einem kleinen Tutorial zu Bottle versucht: http://vimeo.com/9352480 - Viel Spaß.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Bitte.Hyperion hat geschrieben:Danke dafür! Hat mir (wie immer) sehr gefallen :-)
Sieht man doch ganz kurz im Quelltext :)Hyperion hat geschrieben:Edit: evtl. hättest Du den kleinen "Trick" erwähnen können, dass load_page bei Nichtvorhandensein einer Seite einfach eine "leere" zurückliefert und man so neue Seiten anlegen kann.
Ich wollte eigentlich noch eine längere Version machen, da 5min doch einfach zu kurz sind. Da kommt dann auch der Quelltext dazu. Momentan bin ich aber stimmlich immer noch zu angeschlagen.
Stefan
- Defnull
- User
- Beiträge: 778
- Registriert: Donnerstag 18. Juni 2009, 22:09
- Wohnort: Göttingen
- Kontaktdaten:
Geniales Tutorial! Stimme und Aufbau sind sehr gut, deutlich und angenehm. Du könntest damit nen Video-Blog auf machensma hat geschrieben:Hatte mich neulich mal an einem kleinen Tutorial zu Bottle versucht: http://vimeo.com/9352480 - Viel Spaß.


Bottle: Micro Web Framework + Development Blog
"Ich stopf dort die Seite [..] hinein" 
Sehr blumige Sprache. Irgendwie sind 7 von 10 Tutorials Wikis, 2 sind Blogs und eins ist irgendwas. Aber 5 Minuten ist glaube ich Rekord
EDIT:Markdown kannte ich noch nicht. Sieht interessant aus und scheint mehr zu können als creoleparser, kann das sein?

Sehr blumige Sprache. Irgendwie sind 7 von 10 Tutorials Wikis, 2 sind Blogs und eins ist irgendwas. Aber 5 Minuten ist glaube ich Rekord

EDIT:Markdown kannte ich noch nicht. Sieht interessant aus und scheint mehr zu können als creoleparser, kann das sein?
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Wobei das Wiki-Beispiel von Mitsuhiku von werkzeug zwar ca 30 Minuten dauert, er aber auch wirklich alle Zeilen live tippertburli hat geschrieben: Aber 5 Minuten ist glaube ich Rekord![]()

Und gerade weil so ein Wiki Beispiel recht verbreitet ist, ist die Vergleichbarkeit mit anderen Frameworks ja viel leichter möglich
