Python | ToDo webapp using Django

25 May, 2022
Prerequisite : django installationDjango is a high-level Python Web framework based web framework that allows rapid development and clean, pragmatic design. today we will create a todo app created to understand the basics of Django. In this web app, one can create notes like Google Keep or Evernote.Modules required :  
django : install django
crispy_forms :
pip install --upgrade django-crispy-forms
basic setup :Start a project by the following command –  
django-admin startproject todo-site
Change directory to todo-site –  
cd todo-site
Start the server- Start the server by typing following command in terminal –  
python manage.py runserver
To check whether the server is running or not go to a web browser and enter http://127.0.0.1:8000/ as URL.Now stop the server by pressing 
Chapters
descriptions off, selected
captions settings, opens captions settings dialog
captions off, selected
English
This is a modal window.
Beginning of dialog window. Escape will cancel and close the window.
End of dialog window.
ctrl-c
Let’s create an app now. 
python manage.py startapp todo
Goto todo/ folder by doing : cd todo and create a folder with index.html file : templates/todo/index.htmlOpen the project folder using a text editor. The directory structure should look like this : 
Now add todo app and crispty_form in your todo_site in settings.py. 
Edit urls.py file in todo_site : 
Python3
from django.contrib import adminfrom django.urls import pathfrom todo import views  urlpatterns = [    #####################home_page###########################################    path('', views.index, name="todo"),    ####################give id no. item_id name or item_id=i.id ############    # pass item_id as primary key to remove that the todo with given id    path('del/<str:item_id>', views.remove, name="del"),    ########################################################################    path('admin/', admin.site.urls),]
Edit models.py in todo :  
Python3
from django.db import modelsfrom django.utils import timezone  class Todo(models.Model):    title=models.CharField(max_length=100)    details=models.TextField()    date=models.DateTimeField(default=timezone.now)      def __str__(self):        return self.title
Edit views.py in todo : 
Python3
from django.shortcuts import render, redirectfrom django.contrib import messages  ## import todo form and models  from .forms import TodoFormfrom .models import Todo  ###############################################  def index(request):      item_list = Todo.objects.order_by("-date")    if request.method == "POST":        form = TodoForm(request.POST)        if form.is_valid():            form.save()            return redirect('todo')    form = TodoForm()      page = {             "forms" : form,             "list" : item_list,             "title" : "TODO LIST",           }    return render(request, 'todo/index.html', page)      ### function to remove item, it receive todo item_id as primary key from url ##def remove(request, item_id):    item = Todo.objects.get(id=item_id)    item.delete()    messages.info(request, "item removed !!!")    return redirect('todo')
Now create a forms.py in todo :  
Python3
from django import formsfrom .models import Todo  class TodoForm(forms.ModelForm):    class Meta:        model = Todo        fields="__all__"
Register models to admin :  
Navigate to templates/todo/index.html and edit it : link to index.html fileMake migrations and migrate it  
python manage.py makemigrations
python manage.py migrate
Now you can run the server to see your todo app  
python manage.py runserver
 
 
sweetyty
kinrahemang
Django-Projects
Python Django
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Python Dictionary
Different ways to create Pandas Dataframe
Enumerate() in Python
Read a file line by line in Python
How to Install PIP on Windows ?
Python String | replace()
*args and **kwargs in Python
Python Classes and Objects
Python OOPs Concepts
Iterate over a list in Python