SMTL

Die Stadtmeistersteilerliste und das Anmeldeformular - SK Langen e.V.
git clone git://git.oshgnacknak.de/SMTL.git
Log | Files | Refs | README

commit dc37a1fa8f0daddb9f59ad647c3b2f6a6e14b5a4
parent 32e20048a1bae32ed6bf7ef28f7a369a83199b54
Author: Oshgnacknak <osh@oshgnacknak.de>
Date:   Tue, 25 Jun 2019 16:34:42 +0100

signup form

Diffstat:
Aapp.py | 51+++++++++++++++++++++++++++++++++++++++++++++++++++
Asignup_form.py | 42++++++++++++++++++++++++++++++++++++++++++
Atemplates/home.html | 46++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 139 insertions(+), 0 deletions(-)

diff --git a/app.py b/app.py @@ -0,0 +1,51 @@ +from flask import Flask, request, render_template, flash, redirect +from signup_form import SignupForm +import os +import sys + + +def add_to_db(data): + pass + + +# App config. +app = Flask(__name__) +app.config.from_object(__name__) +app.config['SECRET_KEY'] = '7d441f27d441f27567d441f2b6176a' + + +@app.route('/signup', methods=['POST']) +def signup(): + form = SignupForm(request.form) + + if form.validate(): + add_to_db(form.data) + flash('Spieler gespeichert!') + else: + for messages in form.errors.values(): + for message in messages: + flash(message, 'error') + + return redirect('/', code=302) + + +@app.route('/') +@app.route('/home') +def home(): + form = SignupForm(request.form) + return render_template( + 'home.html', + title='Stadtmeisterschaft', + form=form + ) + + + +def main(): + port = int(os.environ.get('PORT', 5000)) + app.run(host='0.0.0.0', port=port, debug=True) + + +if __name__ == '__main__': + main() + diff --git a/signup_form.py b/signup_form.py @@ -0,0 +1,41 @@ +from wtforms import Form, TextField, IntegerField +from wtforms.validators import DataRequired, Regexp, Email +import re + + +name_regex = re.compile('[A-Za-z]+') + + +class SignupForm(Form): + firstname = TextField( + label='Vorname:', + validators=[ + DataRequired('Der Vorname darf nicht leer sein.'), + Regexp(name_regex, message='Der Vorname enstpricht nicht dem gewünschten Format.') + ] + ) + + lastname = TextField( + label='Nachname:', + validators=[ + DataRequired('Der Nachname darf nicht leer sein.'), + Regexp(name_regex, message='Der Nachname enstpricht nicht dem gewünschten Format.') + ] + ) + + club = TextField( + label='Verein:' + ) + + email = TextField( + label='EMail:', + validators=[ + DataRequired('Die EMail darf nicht leer sein.'), + Email('Die Email enstpricht nicht dem gewünschten Format.') + ] + ) + + dwz = IntegerField( + label='DWZ:', + default=0 + )+ \ No newline at end of file diff --git a/templates/home.html b/templates/home.html @@ -0,0 +1,45 @@ +<!doctype html> + +<html lang="en"> +<head> + <meta charset="utf-8"> + + <title>{{ title }}</title> + + <meta name="description" content="Teilerliste und Anmeldeformular der Stadtmeisterschaft"> + <meta name="author" content="SK Langen e.V."> + + <link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}"> +</head> + +<body> + <h2 id="title">{{ title }}</h2> + + {% with messages = get_flashed_messages(with_categories=true) %} + {% if messages %} + <ul id="flashes"> + {% for category, message in messages %} + <li class="{{ category }}">{{ message }}</li> + {% endfor %} + </ul> + {% endif %} + {% endwith %} + + <form action="/signup" id="signup_form" method="POST"> + <table> + {% for field in [form.firstname, form.lastname, form.club, form.dwz, form.email] %} + <tr> + <td>{{ field.label }}</td> + <td>{{ field }}</td> + </tr> + {% endfor %} + <tr> + <td><input type="submit" value="Teilnehmen"></td> + <td><input type="reset" value="Löschen"></td> + </tr> + </table> + </form> + + <script type="module" src="{{ url_for('static', filename='js/main.js') }}"></script> +</body> +</html>+ \ No newline at end of file