Flask: Micro Web Framework based on Good Intentions

Stellt hier eure Projekte vor.
Internetseiten, Skripte, und alles andere bzgl. Python.
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

Sollte es nicht `message` statt `mesage` heißen? http://flask.pocoo.org/docs/patterns/wtforms/#the-forms
[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]
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

jbs hat geschrieben:Sollte es nicht `message` statt `mesage` heißen? http://flask.pocoo.org/docs/patterns/wtforms/#the-forms
Danke. Korrigiert.


Im uebrigen wenn was bei der Doku nicht verstaendlich ist, gleich melden. Flask ist mehr Doku als Code :)
TUFKAB – the user formerly known as blackbird
Tompee
User
Beiträge: 18
Registriert: Sonntag 7. Oktober 2007, 17:13

Hi,

irgendwie bekomme ich das mit Lighttpd-1.4.19 (Debian/Lenny) nicht zum laufen. Er lädt die ganze Zeit die Seite, aber es passiert nichts.

fastcgi.conf

Code: Alles auswählen

server.modules   += ( "mod_fastcgi" )
fastcgi.server = ("/main" => 
                        ("main" =>
                                (
                                "bin-path" => "/var/www/main/main.fcgi",
                                "socket" => "/tmp/main-fcgi.sock",
                                "check-local" => "disable"
                                )
                        )

)
main.py

Code: Alles auswählen

#!/usr/bin/python
from flask import Flask

app = Flask(__name__)

@app.route("/main")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run()
main.fcgi:

Code: Alles auswählen

#!/usr/bin/python
from flup.server.fcgi import WSGIServer
from main import app

WSGIServer(app, bindAddress='/tmp/main-fcgi.sock').run()
Rechte:

Code: Alles auswählen

thomas@home:~$ ls -al /var/www/main/
insgesamt 16
drwxr-xr-x 2 thomas thomas 4096 21. Apr 19:40 .
drwxr-xr-x 3 root   root   4096 21. Apr 16:34 ..
-rwxr-xr-x 1 thomas thomas  137 21. Apr 19:36 main.fcgi
-rwxr-xr-x 1 thomas thomas  168 21. Apr 19:33 main.py
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Ich hab auch noch was gefunden:
http://flask.pocoo.org/docs/patterns/wtforms/#the-forms

Muss nicht das EqualsTo auf das Object password verweisen?

Code: Alles auswählen

from wtforms import Form, BooleanField, TextField, validators

class RegistrationForm(Form):
    username = TextField('Username', [validators.Length(min=4, max=25)])
    email = TextField('Email Address', [validators.Length(min=6, max=35)])
    password = PasswordField('New Password', [validators.Required()])
    # aktuell: EqualTo('confirm', ... -> muss doch auf password zeigen?
    confirm = PasswordField('Repeat Password', [validators.EqualTo(
        'password', message='Passwords must match')])
    accept_tos = BooleanField('I accept the TOS', [validators.Required()])
Und weiter unten im Macro aus _formhelpers.py fehlt das </li> im Original

Code: Alles auswählen

{% for error in field.errors %}<li>{{ error }}</li>{% endfor %}
Imho nur Kleinigkeiten - aber wenn man's schon entdeckt, kann man es ja auch melden.
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Hyperion hat geschrieben:Muss nicht das EqualsTo auf das Object password verweisen?
Entweder das, oder man verschiebt den Validator. Das hab ich auch mal gemacht, ergibt eine besser platzierte Fehlermeldung.
Hyperion hat geschrieben:Und weiter unten im Macro aus _formhelpers.py fehlt das </li> im Original

Code: Alles auswählen

{% for error in field.errors %}<li>{{ error }}</li>{% endfor %}
Warum? HTML4 und HTML5 erfordern hier kein schliessendes Tag, und die Dos verwenden auch ueberall HTML und keine XHTML Syntax.

@jbs: fixed :)

Danke fuer die Hinweise, Docs wurden angepasst. Ansonsten bitte solche Sache im IRC Channel oder Bug Tracker melden, ich schau nur sehr selten in die Foren.
TUFKAB – the user formerly known as blackbird
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

mitsuhiko hat geschrieben:
Hyperion hat geschrieben:Und weiter unten im Macro aus _formhelpers.py fehlt das </li> im Original

Code: Alles auswählen

{% for error in field.errors %}<li>{{ error }}</li>{% endfor %}
Warum? HTML4 und HTML5 erfordern hier kein schliessendes Tag, und die Dos verwenden auch ueberall HTML und keine XHTML Syntax.
Ok, war mir neu. Ist das schließende Tag den optional oder schlicht falsch?
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

Optional und meiner Meinung nach auch gut.
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Hyperion hat geschrieben:Ok, war mir neu. Ist das schließende Tag den optional oder schlicht falsch?
Optional.
ahojnnes hat geschrieben:Optional und meiner Meinung nach auch gut.
Ich seh nicht wirklich einen Sinn dahinter. Weder macht es das parsen einfacher, noch das lesen. Indentation > Schliessende Tags. In Python brauch ich auch nix zum schliessen und helf mir mit Einrueckung. Hier mal zwei Beispiele HTML zu machen, einmal mit allen optionalen Tags drin, und einmal ohne. Was ist schoener zu lesen?

Code: Alles auswählen

<form action="" method="post">
  <dl>
    <dt>Username:</dt>
    <dd><input type="text" name="username"></dd>
    <dt>Password:</dt>
    <dd><input type="password" name="password"></dd>
  </dl>
  <p><input type="submit" value="Submit!"></p>
  <ul>
    <li>This is just a list</li>
    <li>for demonstration purposes</li>
    <li>which normally would not be here</li>
  </ul>
</form>
oder das:

Code: Alles auswählen

<form action="" method=post>
  <dl>
    <dt>Username:
    <dd><input type=text name=username>
    <dt>Password:
    <dd><input type=password name=password>
  </dl>
  <p><input type=submit value="Submit!">
  <ul>
    <li>This is just a list
    <li>for demonstration purposes
    <li>which normally would not be here
  </ul>
</form>
Ist natuerlich Geschmackssache, aber ich halt mein HTML lieber kompakter. Macht aendern einfacher, ist fuer mich leichter zu lesen und downloaded sich auch schneller :)
TUFKAB – the user formerly known as blackbird
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

mitsuhiko hat geschrieben:... und downloaded sich auch schneller :)
Dieser Aspekt iat natürlich besonders wichtig :D

Du hast tatsächlich recht. Liest sich wirklich besser... ich sollte mir mal ansehen, welche Tags offen bleiben dürfen und welche explizit geschlossen werden müssen.
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

Hyperion hat geschrieben:
mitsuhiko hat geschrieben:... und downloaded sich auch schneller :)
Du hast tatsächlich recht. Liest sich wirklich besser... ich sollte mir mal ansehen, welche Tags offen bleiben dürfen und welche explizit geschlossen werden müssen.
Du wirst dich wundern, was alles gültiges HTML ist…
lunar

Andererseits kann man solches HTML nicht mehr mit XML-Parsern verarbeiten. Ob das ein Nachteil ist, muss natürlich jeder selbst entscheiden ...
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

lunar hat geschrieben:Andererseits kann man solches HTML nicht mehr mit XML-Parsern verarbeiten. Ob das ein Nachteil ist, muss natürlich jeder selbst entscheiden ...
Das kann man sowieso nicht. <br/> ist kein gueltiges HTML zB.
TUFKAB – the user formerly known as blackbird
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

Ja, ist natürlich Geschmackssache, ich finde es mit schließenden Tags trotzdem besser - vllt. bin ich es aber auch einfach nur so gewohnt, da ich das immer mit xhtml mache.
lunar

@mitsuhiko: Ja und? Man kann HTML schreiben, dass auch gültiges XML ist, ebenso wie man XML schreiben kann, dass auch gültiges HTML ist.
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

lunar hat geschrieben:@mitsuhiko: Ja und? Man kann HTML schreiben, dass auch gültiges XML ist, ebenso wie man XML schreiben kann, dass auch gültiges HTML ist.
Nein kannst du nicht. Gegenbeispiel ist gerade das eben genannte <br>. <br> für sich ist kein gültiges XML und <br /> oder <br></br> sind kein gültiges HTML.
Benutzeravatar
noisefloor
User
Beiträge: 3843
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

schön ist, das flask ein "Schicht" über Werkzeug ist. Werkzeug ist zwar schön leistungsfähig, war mit für meine Schmallspurprojekte aber immer zu komplex - da kam Bottle gerade richtig :-)

Der Unterschied Bottle vs. Flask ist IMHO die Frage: Single-File vs. Abhängigkeiten. Kann beides Vor- und Nachteile haben.

BTW, woher kommt der Name Flask? ;-)

Gruß, noisefloor
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

noisefloor hat geschrieben:BTW, woher kommt der Name Flask? ;-)
So wie ich armin kenn ist es einfach ein wortspiel, weil es wie „bottle“ übersetzt „flasche“ heißt.
Benutzeravatar
noisefloor
User
Beiträge: 3843
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

@apollo13: Die Frage war rhetorisch. :-) Der Vollständigkeit halber sei dann noch erwähnt, dass "Flask" "Gefäß" heißt.

Im Rahmen der verwendeten Programme Jinja und Werkzeug wäre natürlich ein japanischer Name wie "瓶" oder ein deutscher wie " Buddel" (<- norddeutsch) angebracht gewesen. :D

Zu Flask: IMHO sehr praktisch sind "before_response" und "after_respone". Zumindest, wenn man DBs im Rahmen des Projekts nutzen möchte.

Gruß, noisefloor
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

noisefloor hat geschrieben:ein deutscher wie " Buddel" (<- norddeutsch) angebracht gewesen. :D
Das fände ich, bei einem Autor aus Österreich zutiefst beunruhigend ;)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

Buddel ist ja eher Plattdeutsch als Hochdeutsch.

Aber eigentlich eine gute Idee, falls jemand noch nen Namen für ein innovatives Microframework sucht.

Man könnte ja auch überlegen, ob man nicht versucht eine einheitliche Syntax zu schaffen, und dann von Flaschen-Dialekten spricht.
[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]
Antworten