def create_item(): """Create item""" username = login_session.get('username', None) if request.method == 'GET': catalogs = session.query(Catalog).all() catalogs_display = [{ 'id': catalog.id, 'name': catalog.name } for catalog in catalogs] return render_template('create_item.html', catalogs_display=catalogs_display, username=username) if request.method == 'POST': title = request.form['title'] results = session.query(Item).filter_by(title=title).all() if len(results) > 0: return redirect(url_for('createItem')) user = session.query(User).filter_by(name=username).one() item = Item(title, request.form['desc']) item.catalog_id = request.form['catalog_id'] item.user_id = user.id session.add(item) session.commit() return redirect(url_for('home'))
def setup_db(): # Create engine engine = create_engine('sqlite:///catalog.db') # Create catalog and item table Base.metadata.create_all(engine) # Create session Session = sessionmaker(bind=engine) session = Session() # Clear catalog and item in database session.query(Catalog).delete() session.query(Item).delete() session.query(User).delete() # Get fake user and add to database creator_user_id = None for user_info in fake_user(): user = User(user_info['name']) session.add(user) session.commit() # use the first user to create catalog if creator_user_id is None: creator_user_id = user.id # Get fake catalog and add to database for catalog, items in fake_catalog().items(): catalog = Catalog(catalog) session.add(catalog) session.commit() for item_title, item_desc in items.items(): item = Item(item_title, item_desc) item.catalog_id = catalog.id item.user_id = creator_user_id session.add(item) session.commit() # Close session session.close() # Dispose engine engine.dispose()