from flask import Flask, render_template, request, redirect, url_for
import logging

logger = logging.getLogger(__name__)

app = Flask(__name__)
from flask_sqlalchemy import SQLAlchemy

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///tasks.db'
db = SQLAlchemy(app)

class Task(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    description = db.Column(db.String(255), nullable=False)
    completed = db.Column(db.Boolean, default=False)

with app.app_context():

@app.route("/", methods=["GET", "POST"])
def home():

About this template

A great starting point for a feature-rich To-do List app. This skeleton supports adding, editing, deleting, and prioritizing tasks with due dates and reminders. It's built with Flask and SQLAlchemy, ensuring easy database management. The responsive UI is powered by Tailwind CSS, making it user-friendly and visually appealing. Perfect for creating a robust task management system with potential for further enhancements like project management and collaboration tools.

Introduction to the To-Do App Template

Welcome to the To-Do App template on Lazy! This template is a fantastic starting point for anyone looking to build a feature-rich task management system. With this template, you can add, edit, delete, and prioritize tasks with ease. The application is built using Flask and SQLAlchemy for backend operations, and the user interface is designed with Tailwind CSS for a responsive and visually appealing experience. Whether you're looking to create a simple to-do list or a more complex project management tool, this template provides a solid foundation that can be customized and expanded to fit your needs.

Getting Started

To begin using this template, simply click on "Start with this Template" on the Lazy platform. This will set up the code in the Lazy Builder interface, so you can start customizing and testing your application right away.

Initial Setup

There's no need to worry about environment variables for this template. Lazy handles all the deployment details, so you can focus on building your application.

Test: Deploying the App

Once you're ready to see your application in action, press the "Test" button. This will deploy your app and launch the Lazy CLI. If the application requires any user input, you will be prompted to provide it through the Lazy CLI interface.

Entering Input

For this To-Do App, there is no need for initial user input through the CLI. All interactions with the app will be through the web interface once it is running.

Using the App

After deploying the app, you will be provided with a dedicated server link to access your To-Do List app's interface. Here's how you can interact with the app:

  • Add a new task by entering the task description in the provided input field and clicking the "Add Task" button.
  • Edit an existing task by clicking the "Edit" button next to the task, making changes, and submitting the update.
  • Delete a task by clicking the "Delete" button next to the task you wish to remove.
  • Mark a task as complete by clicking the "Complete" button, or mark it as incomplete by clicking the "Mark as Incomplete" button.

The changes you make will be reflected in real-time, and the tasks' statuses will be updated accordingly in the database.

Integrating the App

If you wish to integrate this To-Do App with other tools or services, you may need to use the server link provided by Lazy. For example, if you want to embed the To-Do List into another webpage, you can use an iframe with the server link as the source.

Here's a sample code snippet for embedding the To-Do List:

  <iframe src="YOUR_SERVER_LINK" width="100%" height="600"></iframe>

Replace "YOUR_SERVER_LINK" with the actual link provided by Lazy after deploying your app.

If you need to interact with the app's backend directly, you can use the server link to make HTTP requests to the endpoints defined in the Flask application.

That's it! You now have a fully functional To-Do List app ready to use and integrate. Enjoy building with Lazy!

Last published
June 15, 2024

More templates like this

FALLBACK | Flask, HTML, JS and Tailwind Based Website

This is a good starting point for styled website. It has a header, footer. Has Tailwind and Flowbite loaded so you can build nice looking pages from here.


FALLBACK LATEST 1 THEME | Flask, HTML, JS and Tailwind Based Website

This is a good starting point for styled website. It has a header, footer. Has Tailwind and Flowbite loaded so you can build nice looking pages from here.


Job Search Website

A customisable one-page job search website with a search bar and a search button that displays UI cards of matching jobs. You need to have a (free) account on to get the API key required for this to work.

React JS
To-Do App