Django

Django CRUD Basics

Create, Read, Update, Delete

Django CRUD Basics

CRUD stands for Create, Read, Update, Delete - the four basic operations for persistent storage. Django makes it easy to implement CRUD operations.

Create (POST)

Create new records:

from django.shortcuts import render, redirect
from .models import Person
from .forms import PersonForm

def create_person(request):
    if request.method == 'POST':
        form = PersonForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('person_list')
    else:
        form = PersonForm()
    return render(request, 'myapp/person_form.html', {'form': form})

Read (GET)

Read/retrieve records:

from .models import Person

def person_list(request):
    people = Person.objects.all()
    return render(request, 'myapp/person_list.html', {'people': people})

def person_detail(request, pk):
    person = Person.objects.get(pk=pk)
    return render(request, 'myapp/person_detail.html', {'person': person})

Update (PUT/PATCH)

Update existing records:

def update_person(request, pk):
    person = Person.objects.get(pk=pk)
    if request.method == 'POST':
        form = PersonForm(request.POST, instance=person)
        if form.is_valid():
            form.save()
            return redirect('person_detail', pk=person.pk)
    else:
        form = PersonForm(instance=person)
    return render(request, 'myapp/person_form.html', {'form': form})

Delete (DELETE)

Delete records:

def delete_person(request, pk):
    person = Person.objects.get(pk=pk)
    if request.method == 'POST':
        person.delete()
        return redirect('person_list')
    return render(request, 'myapp/person_confirm_delete.html', {'person': person})

Using Django Forms

Create forms in forms.py:

from django import forms
from .models import Person

class PersonForm(forms.ModelForm):
    class Meta:
        model = Person
        fields = ['first_name', 'last_name', 'age', 'email']

Note: Always validate forms and use CSRF protection in production applications.