Step 1: Install Python and Django
Make sure Python 3.x is installed.
Install Django using pip:
pip install django
Check Django version:
django-admin --version
Step 2: Create Django Project and App
Create a new project:
django-admin startproject student_crud
cd student_crud
Create a new app:
python manage.py startapp students
Add the app to
settings.py:
INSTALLED_APPS = [
...,
'students',
]
Step 3: Create the Model
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
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
Create folder
students/templates/students/.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>
student_form.html
<h1>Student Form</h1>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Save</button>
</form>
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
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'),
]
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