Python code to handle an SQLAlchemy exception
from flask import (Flask, render_template, Blueprint,
session, redirect, url_for)
# from flask.ext.script import Manager
# from flask.ext.bootstrap import Bootstrap
# from flask.ext.moment import Moment
# from flask.ext.wtf import Form
from application.users.forms import LoginForm
from sqlalchemy import inspect
from sqlalchemy import exc
from application import db
from application.models import User
from sqlalchemy.orm import validates
from wtforms.validators import ValidationError
from pprint import pprint
users = Blueprint('users', __name__)
@users.route('/me')
def me():
return "This is my page", 200
@users.route("/login", methods=['GET','POST'])
def login():
mapper = inspect(User)
for column in mapper.attrs:
print(column.key)
columns = inspect(User).columns.keys()
formdata = {}
form = LoginForm()
formdata['form'] = form
#formdata['form']['name'].data = 'Carlxxxx'
# if form.validate_on_submit():
# formdata['name'] = form.name.data
# form.name.data = ''
# # return render_template('login.html', form=form, name=name, password=password)
# return render_template('login.html', data = formdata)
formdata['name'] = session.get('name')
if form.validate_on_submit():
session['name'] = form.name.data
formdata['name'] = form.name.data
# if db.session.query(User).filter(username=form.name.data).count():
# p = 'found'
new_user = User(password=form.password.data, username=form.name.data)
# try:
# new_user = User(password=form.password.data, username=form.name.data)
#
# except ValueError as e:
# form.name.errors.append(e)
# return render_template('login.html', data = formdata)
# except:
# pass
try:
db.session.add(new_user)
db.session.commit()
except exc.SQLAlchemyError as e:
form.name.errors.append(e.orig.args[1])
return render_template('login.html', data = formdata)
form.name.data = ''
return redirect(url_for('users.login'))
return render_template('login.html', data = formdata)