From 1b2e37426b0be79baf62d8ca0ea0433f5cbd11a0 Mon Sep 17 00:00:00 2001 From: tmeissner Date: Thu, 11 Oct 2018 23:51:12 +0200 Subject: [PATCH] Chapter 4: Web forms with Flask-WTF (4a) --- hello.py | 24 ++++++++++++++++-------- templates/index.html | 6 +++--- templates/user.html | 9 --------- 3 files changed, 19 insertions(+), 20 deletions(-) delete mode 100644 templates/user.html diff --git a/hello.py b/hello.py index 3b21921..213ea3b 100644 --- a/hello.py +++ b/hello.py @@ -1,15 +1,23 @@ -from datetime import datetime from flask import Flask, render_template from flask_bootstrap import Bootstrap from flask_moment import Moment +from flask_wtf import FlaskForm +from wtforms import StringField, SubmitField +from wtforms.validators import DataRequired app = Flask(__name__) +app.config['SECRET_KEY'] = 'hard to guess string' bootstrap = Bootstrap(app) moment = Moment(app) +class NameForm(FlaskForm): + name = StringField('What is your name?', validators=[DataRequired()]) + submit = SubmitField('Submit') + + @app.errorhandler(404) def page_not_found(e): return render_template('404.html'), 404 @@ -20,11 +28,11 @@ def internal_server_error(e): return render_template('500.html'), 500 -@app.route('/') +@app.route('/', methods=['GET', 'POST']) def index(): - return render_template('index.html', current_time=datetime.utcnow()) - - -@app.route('/user/') -def user(name): - return render_template('user.html', name=name) + name = None + form = NameForm() + if form.validate_on_submit(): + name = form.name.data + form.name.data = '' + return render_template('index.html', form=form, name=name) diff --git a/templates/index.html b/templates/index.html index 06afd59..f66281e 100644 --- a/templates/index.html +++ b/templates/index.html @@ -1,11 +1,11 @@ {% extends "base.html" %} +{% import "bootstrap/wtf.html" as wtf %} {% block title %}Flasky{% endblock %} {% block page_content %} -

The local date and time is {{ moment(current_time).format("MMMM Do YYYY, HH:mm:ss")}}.

-

That was {{ moment(current_time).fromNow(refresh=True) }}

+{{ wtf.quick_form(form) }} {% endblock %} \ No newline at end of file diff --git a/templates/user.html b/templates/user.html deleted file mode 100644 index 5fe92ee..0000000 --- a/templates/user.html +++ /dev/null @@ -1,9 +0,0 @@ -{% extends "base.html" %} - -{% block title %}Flasky{% endblock %} - -{% block page_content %} - -{% endblock %} \ No newline at end of file