def new_user(): """ Add a new user :return: Redirects to login page if username already exists or to home page if user is created succesfully """ if request.method == 'GET': return render_template('user_add.html') if request.method == 'POST': username = request.form['name'] password = request.form['password'] if username is None or password is None: flash('Username or password cannot be empty') return redirect('/login') if session.query(Users).filter_by(name=username).first() is not None: flash('user already exists') return redirect('/login') max_id = int(session.query(func.max(Users.id)).one()[0]) + 1 user = Users(id=max_id, name=username) user.hash_password(password) session.add(user) session.commit() user = session.query(Users).filter_by(name=username).first() login_session['username'] = username login_session['user_id'] = user.id flash('User created succesfully') return redirect('/home')
from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarative import declarative_base from database_setup import Users Base = declarative_base() engine = create_engine( 'postgresql://*****:*****@localhost:5432/postgres') Base.metadata.bind = engine DBSession = sessionmaker(bind=engine) session = DBSession() for ind in ["aaa", "bbb", "ccc"]: U = Users(name=ind) U.hash_password("123") session.add(U) session.commit()