Working with Models and Views
Retrieving, Updating, and Deleting Data

I am a versatile developer skilled in web development and data science. My expertise includes HTML, CSS, JavaScript, TypeScript, React, Python, Django, Machine Learning, and Data Analysis. I am currently expanding my knowledge in Java and its applications in software development and data science. My diverse skill set enables me to create dynamic web applications and extract meaningful insights from data, driving innovative solutions.
Introduction
In this blog, we'll dive deeper into working with models and views. We'll learn how to retrieve data from models, create parameterized URLs, build dynamic links to access and manipulate data, and perform CRUD operations (Create, Read, Update, Delete) using forms and views.
Let's explore these concepts through an example-driven approach.
Retrieving Data from Models
In Django, we can retrieve data from models using queryset methods like .all(), .filter(), and .get(). Let's demonstrate how to retrieve all instances of a model and display them in a template.
Step 1: Creating a Path and View Function
First, let's create a path in the urls.py file to map to a view function in the views.py file.
# urls.py
from django.urls import path
from . import views
urlpatterns = [
path('example/', views.example_view, name='example'),
path('example/<int:id>/', views.example_detail_view, name='example_detail'),
path('create_example/', views.create_example_view, name='create_example'),
path('delete_example/<int:id>/', views.delete_example_view, name='delete_example'),
]
Now, let's define the view function example_view in the views.py file to retrieve all instances of the ExampleModel model and pass them to a template.
# views.py
from django.shortcuts import render
from .models import ExampleModel
def example_view(request):
examples = ExampleModel.objects.all()
return render(request, 'example_template.html', {'examples': examples})
Step 2: Creating a Template
Next, let's create a template named example_template.html to display the retrieved data.
<!-- example_template.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Example Data</title>
</head>
<body>
<h1>Example Data</h1>
<ul>
{% for example in examples %}
<li>
<a href="{% url 'example_detail' example.id %}">{{ example.name }}</a>
- {{ example.description }}
<form action="{% url 'delete_example' example.id %}" method="post">
{% csrf_token %}
<input type="submit" value="Delete">
</form>
</li>
{% endfor %}
</ul>
<form action="{% url 'create_example' %}" method="post">
{% csrf_token %}
<input type="text" name="name" placeholder="Name">
<input type="text" name="description" placeholder="Description">
<input type="submit" value="Create">
</form>
</body>
</html>
Step 3: Creating View Functions for CRUD Operations
Now, let's define view functions for creating and deleting instances of the ExampleModel model.
# views.py
from django.shortcuts import render, redirect, get_object_or_404
from .models import ExampleModel
def create_example_view(request):
if request.method == 'POST':
name = request.POST.get('name')
description = request.POST.get('description')
data = ExampleModel(name=name, description=description)
data.save()
return redirect('example')
return render(request, 'create_example_template.html')
def delete_example_view(request, id):
example = get_object_or_404(ExampleModel, id=id)
example.delete()
return redirect('example')
In these view functions:
create_example_view: Creates a new instance ofExampleModelusing data from the POST request.delete_example_view: Deletes the instance ofExampleModelwith the specified ID.
Conclusion
In this blog post, we've explored how to retrieve data from models, create parameterized URLs, build dynamic links, and perform CRUD operations using forms and views in Django applications. By following these steps, you can effectively work with models and views to build dynamic web applications.
Stay tuned for the next blog, where we'll delve deeper into advanced techniques for managing data in Django applications.
Happy coding!




