#! /usr/bin/env python3 from bottle import route, run, template, redirect from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarative import declarative_base from models import * import click engine = create_engine("sqlite:///app.db") Base = declarative_base() Session = sessionmaker(bind=engine) session = Session() @route('/') def index(): return template('index') @route('/categories') def categories(): categories = session.query(Category).all() categories = [c for c in categories if c.is_child()] return template('categories', categories=categories) @route('/category/') def category(name): c = session.query(Category).filter(Category.name==name).first() if c: transactions = session.query(Transaction).filter(Transaction.category_id==c.id).all() else: transactions = [] return template('category', category=c,transactions=transactions) @route('/category//delete') def category(name): c = session.query(Category).filter(Category.name==name).first() if c: session.delete(c) session.commit() return redirect("/categories") @route('/transactions') def transactions(): transactions = session.query(Transaction).all() return template('transactions', transactions=transactions) @click.command(name='serve') def command(): run(host='localhost', port=8080, reloader=True,debug=True)