# Created by Dmitriy Shin on June 23, 2020 from flask import Flask, render_template, request, redirect from flask_sqlalchemy import SQLAlchemy as sa from datetime import datetime app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///todo.db' db = sa(app) # Model(s) class Todo(db.Model): id = db.Column(db.Integer, primary_key=True) task = db.Column(db.String(200), nullable=False) done = db.Column(db.Boolean, default=False) def __repr__(self): return f"TODO {self.id}: {self.task}; done: {self.done}" @app.route('/') def home(): return render_template('home.html') @app.route('/todos') def todos(): todos = Todo.query.all() return render_template('todos.html', todos=todos)
metadata.reflect(engine, only=['user', 'post']) Base = automap_base(metadata=metadata) Base.prepare() User, Post = Base.classes.user, Base.classes.post User.posts = relationship("post", back_populates="user") Post.author = relationship("user", back_populates="posts") def GetSession(): if 'session' not in g: g.session = Session() return g.session def CloseSession(e=None): session = g.pop('session', None) if session is not None: session.close() database = sa() @click.command('init-db') @with_appcontext def InitDatabaseCommand(): metadata.create_all(engine.connect()) click.echo('Initialized the database.') def InitApp(app): app.teardown_appcontext(CloseSession) app.cli.add_command(InitDatabaseCommand)