from flask import Flask, render_template, url_for, request, redirect from flask_sqlalchemy import SQLAlchemy from datetime import datetime app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db' db = SQLAlchemy(app) class TODO(db.Model): id = db.Column(db.Integer, primary_key = True) content = db.Column(db.String(200), nullable=False) completed = db.Column(db.Integer, default=0) date_created = db.Column(db.DateTime, default = datetime.utcnow) def __repr__(self): return '' % self.id @app.route('/', methods=["POST", "GET"]) def index(): if request.method =='POST': task_content = request.form['content'] new_task = TODO(content = task_content) try: db.session.add(new_task) db.session.commit() return redirect('/') except: return "There was an issue adding your task" else: tasks = TODO.query.order_by(TODO.date_created).all() return render_template('index.html', tasks = tasks) @app.route('/delete/') def delete(id): task_to_delete = TODO.query.get_or_404(id) try: db.session.delete(task_to_delete) db.session.commit() return redirect('/') except: return "There was a problem deleting that task" @app.route('/update/', methods=["GET", "POST"]) def update(id): task = TODO.query.get_or_404(id) if request.method == 'POST': task.content = request.form['content'] try: db.session.commit() return redirect('/') except: return "There was an issue updating your Task" else: return render_template('update.html', task = task) if __name__ == "__main__": app.run(debug=True)