Seite 1 von 4

Verfasst: Montag 19. April 2010, 21:23
von jbs
Sollte es nicht `message` statt `mesage` heißen? http://flask.pocoo.org/docs/patterns/wtforms/#the-forms

Verfasst: Dienstag 20. April 2010, 19:28
von mitsuhiko
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 :)

Verfasst: Mittwoch 21. April 2010, 19:00
von Tompee
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

Verfasst: Donnerstag 22. April 2010, 09:45
von Hyperion
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.

Verfasst: Freitag 23. April 2010, 11:21
von mitsuhiko
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.

Verfasst: Freitag 23. April 2010, 12:01
von Hyperion
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?

Verfasst: Freitag 23. April 2010, 13:28
von nemomuk
Optional und meiner Meinung nach auch gut.

Verfasst: Freitag 23. April 2010, 14:24
von mitsuhiko
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 :)

Verfasst: Freitag 23. April 2010, 14:51
von Hyperion
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.

Verfasst: Freitag 23. April 2010, 15:18
von Darii
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…

Verfasst: Freitag 23. April 2010, 15:42
von lunar
Andererseits kann man solches HTML nicht mehr mit XML-Parsern verarbeiten. Ob das ein Nachteil ist, muss natürlich jeder selbst entscheiden ...

Verfasst: Freitag 23. April 2010, 22:51
von mitsuhiko
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.

Verfasst: Samstag 24. April 2010, 07:12
von nemomuk
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.

Verfasst: Samstag 24. April 2010, 09:53
von 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.

Verfasst: Sonntag 25. April 2010, 10:08
von Darii
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.

Verfasst: Sonntag 2. Mai 2010, 16:02
von noisefloor
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

Verfasst: Sonntag 2. Mai 2010, 16:50
von apollo13
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.

Verfasst: Montag 3. Mai 2010, 05:42
von noisefloor
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

Verfasst: Montag 3. Mai 2010, 15:26
von Leonidas
noisefloor hat geschrieben:ein deutscher wie " Buddel" (<- norddeutsch) angebracht gewesen. :D
Das fände ich, bei einem Autor aus Österreich zutiefst beunruhigend ;)

Verfasst: Montag 3. Mai 2010, 15:49
von jbs
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.