Django CRUD(Create, Retrieve, Update, Delete)
Create : create or add new data in the corresponding database.
Retrieve:data accessing from database.
Update : Make changes with the data.
Delete: remove the particular data in the database.
Before start the crud operation make sure to create project and app and register app in the setting.py
CREATE
model.py
from django.db import models class SalesModel(models.Model): name = models.CharField(max_length = 20) message = models.CharField(max_length=50) def __str__(self): return self.name return self.message
After creating this model run following command:-
python manage.py makemigrations
python manage.py migrate
Creating Form.py in apps
from django import forms from .models import SalesModel class SalesForm(forms.ModelForm): class Meta: model = SalesModel fields = [ "name", "message", ]
Now Creating Views.py
Views.py : type the following code
from django.shortcuts import render from django.shortcuts import (get_object_or_404, render, HttpResponseRedirect) from .models import SalesModel from .forms import SalesForm def create(request): context ={} form = SalesForm(request.POST or None) if form.is_valid(): form.save() context['form']= form return render(request, "create.html", context) def listt(request): context ={} context["dataset"] = SalesModel.objects.all() return render(request, "listt.html", context) def detail(request,id): context ={} context["data"] = SalesModel.objects.get(id = id) return render(request, "detail.html", context) def update(request,id): context ={} obj = get_object_or_404(SalesModel, id = id) form = SalesForm(request.POST or None, instance = obj) if form.is_valid(): form.save() return HttpResponseRedirect("/"+id) context["form"] = form return render(request, "update.html", context) def delete(request, id): context ={} obj = get_object_or_404(SalesModel, id = id) if request.method =="POST": obj.delete() return HttpResponseRedirect("/") return render(request, "delete.html", context)
urls.py
"""salesforcedrillers URL Configuration The `urlpatterns` list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/3.0/topics/http/urls/ Examples: Function views 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: path('', views.home, name='home') Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') Including another URLconf 1. Import the include() function: from django.urls import include, path 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ from django.contrib import admin from django.urls import path from crud.views import * urlpatterns = [ path('admin/', admin.site.urls), path('',create), path('list/',listt), path('detail/',detail), path('update/ ',update), path('delete/ ', delete) ]
Setting.py
INSTALLED_APPS = [ 'crud', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles',
Create.html
<form method="POST" enctype="multipart/form-data">
<!-- Security token -->
{% csrf_token %}
<!-- Using the formset -->
{{ form.as_p }}
<input type="submit" value="Submit">
</form>
detail.html
<div class="main">
<!-- Display attributes of instance -->
{{ data.name }} <br/>
{{ data.message}}
</div>
list.html
<div class="main">
{% for data in dataset %}.
{{ data.name }}<br/>
{{ data.message}}<br/>
<hr/>
{% endfor %}
</div>
update.html
<div class="main">
<!-- Create a Form -->
<form method="POST">
<!-- Security token by Django -->
{% csrf_token %}
<!-- form as paragraph -->
{{ form.as_p }}
<input type="submit" value="Update">
</form>
</div>
delete.html
<div class="main">
<!-- Create a Form -->
<form method="POST">
<!-- Security token by Django -->
{% csrf_token %}
Sure you want to delete?
<input type="submit" value="Yes" />
<a href="/">Cancel </a>
</form>
</div>
Create Output
View Output
Update Output
Delete Output