From 59c7e489a49197326db990f9547922cf63d7ca14 Mon Sep 17 00:00:00 2001 From: tmeissner Date: Wed, 17 Oct 2018 21:40:58 +0200 Subject: [PATCH] Chapter 5: Database use in the application (5b) --- hello.py | 19 +++++++++++++------ templates/index.html | 5 +++++ 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/hello.py b/hello.py index dc7db8d..a978657 100644 --- a/hello.py +++ b/hello.py @@ -1,5 +1,5 @@ import os -from flask import Flask, render_template, session, redirect, url_for, flash +from flask import Flask, render_template, session, redirect, url_for from flask_bootstrap import Bootstrap from flask_moment import Moment from flask_wtf import FlaskForm @@ -25,7 +25,7 @@ class Role(db.Model): __tablename__ = 'roles' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(64), unique=True) - users = db.relationship('User', backref='role') + users = db.relationship('User', backref='role', lazy='dynamic') def __repr__(self): return '' % self.name @@ -60,9 +60,16 @@ def internal_server_error(e): def index(): form = NameForm() if form.validate_on_submit(): - old_name = session.get('name') - if old_name is not None and old_name != form.name.data: - flash('Loks like you have changed your name!') + user = User.query.filter_by(username=form.name.data).first() + if user is None: + user = User(username=form.name.data) + db.session.add(user) + db.session.commit() + session['known'] = False + else: + session['known'] = True session['name'] = form.name.data + form.name.data = '' return redirect(url_for('index')) - return render_template('index.html', form=form, name=session.get('name')) + return render_template('index.html', form=form, name=session.get('name'), + known=session.get('known', False)) diff --git a/templates/index.html b/templates/index.html index f66281e..5479c64 100644 --- a/templates/index.html +++ b/templates/index.html @@ -6,6 +6,11 @@ {% block page_content %} {{ wtf.quick_form(form) }} {% endblock %} \ No newline at end of file