Worked on form with WTForms

This commit is contained in:
Sauer 2019-04-12 17:00:33 +02:00
parent cbd683becc
commit 8726da8228
4 changed files with 50 additions and 1 deletions

1
data.csv Normal file
View File

@ -0,0 +1 @@
1234abc,
1 1234abc

View File

@ -1,7 +1,8 @@
from flask import Flask, render_template
from flask import Flask, render_template, request, redirect, url_for
import uuid
import csv
import os
from wtforms import Form, StringField, SelectField, BooleanField, validators
app = Flask(__name__)
app.jinja_env.trim_blocks = True
@ -9,10 +10,32 @@ app.jinja_env.lstrip_blocks = True
datafile = "data.csv"
class QuestionForm(Form):
username = StringField('Name', [validators.Length(min=4, max=25)])
spirit_animal = SelectField(u'Spirit Animal', choices=[('feuer', 'Feuerfuchs'), ('wasser', 'Wasserhahn'), ('erde', 'Erdferkel'), ('luft', 'Luftschlange')])
vegetable = SelectField(u'Gemüse')
check = BooleanField('Bitte hier ankreuzen')
class User():
name = ''
@app.route('/')
def index():
return render_template('index.html', title='Test', text='Hallo, Fooboar')
@app.route('/questions', methods=['GET', 'POST'])
def questions():
form = QuestionForm(request.form)
form.vegetable.choices = [('tomate', 'Tomate'), ('erdnuss', 'Erdnuss')]
if request.method == 'POST' and form.validate():
user = User()
user.name = form.username
spirit = request.form['spirit_animal']
print(spirit)
# user.save()
return redirect(url_for('result'))
return render_template('questions.html', form=form)
@app.route('/form')
def form():
id = generate_id()

View File

@ -0,0 +1,12 @@
{% macro render_field(field) %}
<dt>{{ field.label }}
<dd>{{ field(**kwargs)|safe }}
{% if field.errors %}
<ul class=errors>
{% for error in field.errors %}
<li>{{ error }}</li>
{% endfor %}
</ul>
{% endif %}
</dd>
{% endmacro %}

13
templates/questions.html Normal file
View File

@ -0,0 +1,13 @@
{% extends "base.html" %}
{% block content %}
{% from "_formhelpers.html" import render_field %}
<form method=post>
<dl>
{{ render_field(form.username) }}
{{ render_field(form.spirit_animal) }}
{{ render_field(form.vegetable) }}
{{ render_field(form.check) }}
</dl>
<p><input type=submit value=Register>
</form>
{% endblock %}