Fill the form with content
This commit is contained in:
parent
c605c89f39
commit
39b97cb97f
@ -3,6 +3,7 @@ import uuid
|
||||
import csv
|
||||
import os
|
||||
from wtforms import Form, StringField, SelectField, BooleanField, validators
|
||||
from wtforms.fields.html5 import EmailField
|
||||
|
||||
app = Flask(__name__)
|
||||
app.jinja_env.trim_blocks = True
|
||||
@ -10,11 +11,23 @@ app.jinja_env.lstrip_blocks = True
|
||||
|
||||
datafile = "data.csv"
|
||||
|
||||
def input_check(form, field):
|
||||
if field.data == 'default':
|
||||
raise validators.ValidationError('Bitte wähle eine Option aus')
|
||||
|
||||
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')
|
||||
computers = [('default', 'Bitte auswählen'), ('hal', 'HAL 9000 (2001: Odyssee im Weltraum)'), ('deepthought', 'Deep Thought (Per Anhalter durch die Galaxie)'), ('neuromancer', 'Neuromancer (Neuromancer)'), ('samantha', 'Samatha (Her)'), ('tars', 'TARS und CASE (Interstellar)')]
|
||||
computer = SelectField(u'Fiktionaler Lieblingscomputer', choices=computers, validators=[validators.InputRequired(), input_check])
|
||||
statuses = [('default', 'Bitte auswählen'), ('200', '200 OK'), ('300', '300 Multiple Choices'), ('301', '301 Moved Permanently'), ('402', '402 Payment Required'), ('404', '404 (Sleep) Not Found'), ('408', '408 Request Timeout'), ('418', '418 I am a teapot'), ('450', '450 Blocked by Windows Parental Controls'), ('451', '451 Unavailable For Legal Reasons'), ('502', '502 Bad Gateway (Internetkurort)')]
|
||||
status = SelectField(u'Welcher HTTP-Statuscode trifft am häufigsten auf dich zu?', choices=statuses, validators=[validators.InputRequired(), input_check])
|
||||
vegetables = [('default', 'Bitte auswählen'), ('karotte', '🥕'), ('broccoli','🥦'), ('aubergine', '🍆'), ('kartoffel', '🥔'), ('bretzel', '🥨'), ('tomate', '🍅'), ('chili', '🌶️')]
|
||||
vegetable = SelectField(u'Lieblingsgemüse', choices=vegetables, validators=[validators.InputRequired(), input_check])
|
||||
spirit_animals = [('default', 'Bitte auswählen'), ('feuer', 'Feuerfuchs'), ('wasser', 'Wasserhahn'), ('erde', 'Erdferkel'), ('luft', 'Luftschlange')]
|
||||
spirit_animal = SelectField(u'Spirit Animal', choices=spirit_animals, validators=[validators.InputRequired(), input_check])
|
||||
operating_systems = [('default', 'Bitte auswählen'), ('windows', 'Windows'), ('mac', 'Mac'), ('linux', 'Linux'), ('kaffee', 'Kaffee'), ('glados', 'GLaDOS')]
|
||||
operating_system = SelectField(u'Bevorzugtes Betriebssystem', choices=operating_systems, validators=[validators.InputRequired(), input_check])
|
||||
check = BooleanField('Bitte nicht ankreuzen')
|
||||
email = EmailField('Email-Adresse')
|
||||
|
||||
class User():
|
||||
name = ''
|
||||
@ -26,7 +39,6 @@ def index():
|
||||
@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():
|
||||
with open(datafile, "a", newline='') as f:
|
||||
new_row = list()
|
||||
|
||||
@ -1,13 +0,0 @@
|
||||
{% macro render_field(field) %}
|
||||
{% for field in form %}
|
||||
<tr>
|
||||
{% if field.type == "BooleanField" %}
|
||||
<td></td>
|
||||
<td>{{ field }} {{ field.label }}</td>
|
||||
{% else %}
|
||||
<td>{{ field.label }}</td>
|
||||
<td>{{ field }}</td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% endmacro %}
|
||||
@ -3,10 +3,13 @@
|
||||
{% from "_formhelpers.html" import render_field %}
|
||||
<form method=post>
|
||||
<dl>
|
||||
{{ render_field(form.username) }}
|
||||
{{ render_field(form.spirit_animal) }}
|
||||
{{ render_field(form.computer) }}
|
||||
{{ render_field(form.status) }}
|
||||
{{ render_field(form.vegetable) }}
|
||||
{{ render_field(form.spirit_animal) }}
|
||||
{{ render_field(form.operating_system) }}
|
||||
{{ form.check }} {{ form.check.label }}
|
||||
{{ render_field(form.email) }}
|
||||
</dl>
|
||||
<p><input type=submit value=Abschicken>
|
||||
</form>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user