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
