Monday, December 29, 2025

CRUD system

Step 1: Install Python and Django

  1. Make sure Python 3.x is installed.

  2. Install Django using pip:

pip install django
  1. Check Django version:

django-admin --version

Step 2: Create Django Project and App

  1. Create a new project:

django-admin startproject student_crud
cd student_crud
  1. Create a new app:

python manage.py startapp students
  1. Add the app to settings.py:

INSTALLED_APPS = [
    ...,
    'students',
]

Step 3: Create the Model

  1. In students/models.py, define the student model:

from django.db import models

class Student(models.Model):
    name = models.CharField(max_length=100)
    age = models.IntegerField()

    def __str__(self):
        return self.name
  1. Apply migrations:

python manage.py makemigrations
python manage.py migrate

Step 4: Create Superuser for Admin

python manage.py createsuperuser
  • Enter username, email, and password.

  • Access admin panel at http://127.0.0.1:8000/admin/.


Step 5: Register Model in Admin

In students/admin.py:

from django.contrib import admin
from .models import Student

admin.site.register(Student)

Step 6: Create Forms

In students/forms.py:

from django import forms
from .models import Student

class StudentForm(forms.ModelForm):
    class Meta:
        model = Student
        fields = ['name', 'age']

Step 7: Create Views

In students/views.py:

from django.shortcuts import render, redirect, get_object_or_404
from .models import Student
from .forms import StudentForm

# Read - List all students
def student_list(request):
    students = Student.objects.all()
    return render(request, 'students/student_list.html', {'students': students})

# Create - Add a new student
def student_create(request):
    form = StudentForm(request.POST or None)
    if form.is_valid():
        form.save()
        return redirect('student_list')
    return render(request, 'students/student_form.html', {'form': form})

# Update - Edit student details
def student_update(request, pk):
    student = get_object_or_404(Student, pk=pk)
    form = StudentForm(request.POST or None, instance=student)
    if form.is_valid():
        form.save()
        return redirect('student_list')
    return render(request, 'students/student_form.html', {'form': form})

# Delete - Remove student
def student_delete(request, pk):
    student = get_object_or_404(Student, pk=pk)
    if request.method == 'POST':
        student.delete()
        return redirect('student_list')
    return render(request, 'students/student_delete.html', {'student': student})

Step 8: Create Templates

  1. Create folder students/templates/students/.

  2. student_list.html

<h1>Students</h1>
<a href="{% url 'student_create' %}">Add Student</a>
<ul>
  {% for student in students %}
    <li>{{ student.name }} ({{ student.age }}) 
        <a href="{% url 'student_update' student.id %}">Edit</a>
        <a href="{% url 'student_delete' student.id %}">Delete</a>
    </li>
  {% endfor %}
</ul>
  1. student_form.html

<h1>Student Form</h1>
<form method="post">
  {% csrf_token %}
  {{ form.as_p }}
  <button type="submit">Save</button>
</form>
  1. student_delete.html

<h1>Delete Student</h1>
<p>Are you sure you want to delete {{ student.name }}?</p>
<form method="post">
  {% csrf_token %}
  <button type="submit">Yes, Delete</button>
</form>

Step 9: Configure URLs

  1. In students/urls.py:

from django.urls import path
from . import views

urlpatterns = [
    path('', views.student_list, name='student_list'),
    path('create/', views.student_create, name='student_create'),
    path('update/<int:pk>/', views.student_update, name='student_update'),
    path('delete/<int:pk>/', views.student_delete, name='student_delete'),
]
  1. Include app URLs in main student_crud/urls.py:

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('students.urls')),
]

Step 10: Run the Server

python manage.py runserver
  • Open browser: http://127.0.0.1:8000/

  • You can now Add, View, Update, and Delete students.


✅ Step 11: Optional Enhancements

  • Add search functionality

  • Add student grades

  • Style pages with Bootstrap or CSS

  • Add pagination for many students


0 comments:

Post a Comment

 

BEST COMPUTER GUIDE Written by Abigail Odenigbo, Published @ 2014 by NOBIGDEAL(Ipietoon)