Fill the form with content
This commit is contained in:
parent
c605c89f39
commit
39b97cb97f
@ -2,7 +2,8 @@ from flask import Flask, render_template, request, redirect, url_for
|
|||||||
import uuid
|
import uuid
|
||||||
import csv
|
import csv
|
||||||
import os
|
import os
|
||||||
from wtforms import Form, StringField, SelectField, BooleanField, validators
|
from wtforms import Form, StringField, SelectField, BooleanField, validators
|
||||||
|
from wtforms.fields.html5 import EmailField
|
||||||
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
app.jinja_env.trim_blocks = True
|
app.jinja_env.trim_blocks = True
|
||||||
@ -10,11 +11,23 @@ app.jinja_env.lstrip_blocks = True
|
|||||||
|
|
||||||
datafile = "data.csv"
|
datafile = "data.csv"
|
||||||
|
|
||||||
|
def input_check(form, field):
|
||||||
|
if field.data == 'default':
|
||||||
|
raise validators.ValidationError('Bitte wähle eine Option aus')
|
||||||
|
|
||||||
class QuestionForm(Form):
|
class QuestionForm(Form):
|
||||||
username = StringField('Name', [validators.Length(min=4, max=25)])
|
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)')]
|
||||||
spirit_animal = SelectField(u'Spirit Animal', choices=[('feuer', 'Feuerfuchs'), ('wasser', 'Wasserhahn'), ('erde', 'Erdferkel'), ('luft', 'Luftschlange')])
|
computer = SelectField(u'Fiktionaler Lieblingscomputer', choices=computers, validators=[validators.InputRequired(), input_check])
|
||||||
vegetable = SelectField(u'Gemüse')
|
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')
|
check = BooleanField('Bitte nicht ankreuzen')
|
||||||
|
email = EmailField('Email-Adresse')
|
||||||
|
|
||||||
class User():
|
class User():
|
||||||
name = ''
|
name = ''
|
||||||
@ -26,7 +39,6 @@ def index():
|
|||||||
@app.route('/questions', methods=['GET', 'POST'])
|
@app.route('/questions', methods=['GET', 'POST'])
|
||||||
def questions():
|
def questions():
|
||||||
form = QuestionForm(request.form)
|
form = QuestionForm(request.form)
|
||||||
form.vegetable.choices = [('tomate', 'Tomate'), ('erdnuss', 'Erdnuss')]
|
|
||||||
if request.method == 'POST' and form.validate():
|
if request.method == 'POST' and form.validate():
|
||||||
with open(datafile, "a", newline='') as f:
|
with open(datafile, "a", newline='') as f:
|
||||||
new_row = list()
|
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 %}
|
{% from "_formhelpers.html" import render_field %}
|
||||||
<form method=post>
|
<form method=post>
|
||||||
<dl>
|
<dl>
|
||||||
{{ render_field(form.username) }}
|
{{ render_field(form.computer) }}
|
||||||
{{ render_field(form.spirit_animal) }}
|
{{ render_field(form.status) }}
|
||||||
{{ render_field(form.vegetable) }}
|
{{ render_field(form.vegetable) }}
|
||||||
|
{{ render_field(form.spirit_animal) }}
|
||||||
|
{{ render_field(form.operating_system) }}
|
||||||
{{ form.check }} {{ form.check.label }}
|
{{ form.check }} {{ form.check.label }}
|
||||||
|
{{ render_field(form.email) }}
|
||||||
</dl>
|
</dl>
|
||||||
<p><input type=submit value=Abschicken>
|
<p><input type=submit value=Abschicken>
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user