2016-01-12 11 views
5

Ich las Flask-WTF extrem vereinfachtes Wiki und konnte nicht viel darüber verstehen, was ich damit machen kann. Ich habe den Eindruck, dass der <form> Abschnitt des html jetzt nur wieMit Flask-WTForms, wie style ich meinen Formularabschnitt des HTML?

aussehen kann
<form method="post"> 
    {{ form.hidden_tag() }} 
    {{ form.name }} 
    <input type="submit"> 
</form> 

Aber ich möchte wirklich meine MATERIALIZED um Stil wie:

 <div class="row"> 
      <div class="input-field col s6"> 
       <i class="material-icons prefix">account_circle</i> 
       <input value="FN" id="first_name" type="text" class="validate"> 
       <label class="active" for="first_name">First Name</label> 
      </div> 
      <div class="input-field col s6"> 
       <input value="LN" id="last_name" type="text" class="validate"> 
       <label class="active" for="last_name">Last Name</label> 
      </div> 
     </div> 

Wo kann ich passen {{ form.first_name }} und {{ form.last_name }} in?

EDIT: Lassen Sie mich auf meine Antwort erarbeiten ein bisschen mehr: Zum Beispiel möchte ich so etwas wie materialisierten datepicker (ein guter Kalender Pop-up, die Benutzer können das Datum wählen), sollte dies in der <input class='datepicker' length="50"> sein, aber jetzt dass ich die ganze <input> Zeile mit {{ form.date }} ersetze ... Ich verlor dieses Privileg, um die Klasse zu bearbeiten und was nicht.

Antwort

4

WTForms-Felder können called mit Attributen sein, die für die von ihnen gerenderte Eingabe festgelegt werden. Übergeben Sie die Attribute, die Sie für Styling, JavaScript-Funktionalität usw. benötigen, an die Felder, anstatt nur auf die Felder zu verweisen. Die Labels verhalten sich genauso und können mit field.label aufgerufen werden.

for, value, type, id und name brauchen nicht weitergegeben werden, da sie automatisch verarbeitet werden. Es gibt einige rules für die Behandlung spezieller Fälle von Attributen. Wenn ein Attributname ein Python-Schlüsselwort wie class ist, fügen Sie einen Unterstrich an: class_. Bindestriche sind keine gültigen Python-Namen, daher werden Unterstriche zwischen Wörtern in Bindestriche umgewandelt. data_toggle wird data-toggle.

Beachten Sie, dass keine der verknüpften Methoden direkt aufgerufen werden müssen, diese Dokumente beschreiben nur das Verhalten beim Aufruf der Felder.