Пример #1
0
def new_album():
    """Page for creating a new album."""

    if request.method == 'POST':
        # if empty name field (i.e. user cancelled):
        if request.form['name'].strip() == '':
            return redirect(url_for('show_albums'))

        add_album = Album(name     =request.form['name'],
                          user_id  =login_session['user_id']
                          )
        # try committing changes:
        if not commit_changes(add_album, 'add'):
            return redirect(url_for('show_albums'))

        # create new subdirectory for images:
        add_album.file_path = os.path.join(app.config['UPLOAD_FOLDER'],
                                           str(add_album.id))
        os.makedirs(add_album.file_path)
        session.commit()

        # flash message:
        flash("New album successfully created")

        return redirect(url_for('show_albums'))
    else:
        return render_template('newAlbum.html', title='New Album')
Пример #2
0
def create_user(login_session):
    """Uses login_session to add user to database."""

    new_user = User(name    =login_session['username'],
                    email   =login_session['email'],
                    picture =login_session['picture'])
    session.add(new_user)
    session.commit()

    user = session.query(User).filter_by(email=login_session['email']).one()
    return user.id
Пример #3
0
def commit_changes(item, crud_function='add'):
    """Commit CRUD changes with proper error catching."""

    try:
        if crud_function == 'add':
            session.add(item)
        else:
            session.delete(item)
        session.commit()
        return True
    except IntegrityError as e:
        session.rollback()
        flash("An error occurred while trying to %s" % crud_function)
        return None