0% found this document useful (0 votes)
23 views

Mysql Crud Operations Using Django

Uploaded by

Akanksha Patil
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views

Mysql Crud Operations Using Django

Uploaded by

Akanksha Patil
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

Step-by-Step Guide

1. Install Django and MySQL Client

pip install django mysqlclient

2. Create Django Project

django-admin startproject student_management


cd student_management

3. Create Django App

python manage.py startapp students

4. Configure MySQL Database Edit student_management/settings.py:

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'student_db', # your database name
'USER': 'root', # your database user
'PASSWORD': 'password',# your database password
'HOST': 'localhost',
'PORT': '3306',
}
}

5. Update Installed Apps Add students to INSTALLED_APPS in student_management/settings.py:

INSTALLED_APPS = [
...
'students',
]

6. Create Models Edit students/models.py:

from django.db import models

class Student(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
email = models.EmailField(unique=True)
course = models.CharField(max_length=100)

def __str__(self):
return f"{self.first_name} {self.last_name}"

7. Create Forms Create a file students/forms.py:

from django import forms


from .models import Student

class StudentForm(forms.ModelForm):
class Meta:
model = Student
fields = ['first_name', 'last_name', 'email', 'course']

8. Create Views Edit students/views.py:


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

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

def student_create(request):
if request.method == 'POST':
form = StudentForm(request.POST)
if form.is_valid():
form.save()
return redirect('student_list')
else:
form = StudentForm()
return render(request, 'students/student_form.html', {'form': form})

def student_update(request, pk):


student = get_object_or_404(Student, pk=pk)
if request.method == 'POST':
form = StudentForm(request.POST, instance=student)
if form.is_valid():
form.save()
return redirect('student_list')
else:
form = StudentForm(instance=student)
return render(request, 'students/student_form.html', {'form': form})

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_confirm_delete.html', {'student':
student})

9. Create URL Patterns Edit students/urls.py:

from django.urls import path


from . import views

urlpatterns = [
path('', views.student_list, name='student_list'),
path('new/', views.student_create, name='student_create'),
path('<int:pk>/edit/', views.student_update, name='student_update'),
path('<int:pk>/delete/', views.student_delete, name='student_delete'),
]

Add the app URLs to the project urls.py (student_management/urls.py):

from django.contrib import admin


from django.urls import path, include

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

10. Create Templates

students/templates/students/student_list.html:

<!DOCTYPE html>
<html>
<head>
<title>Student List</title>
</head>
<body>
<h1>Students</h1>
<a href="{% url 'student_create' %}">Add Student</a>
<ul>
{% for student in students %}
<li>{{ student.first_name }} {{ student.last_name }} -
{{ student.course }}
<a href="{% url 'student_update' student.pk %}">Edit</a>
<a href="{% url 'student_delete' student.pk %}">Delete</a>
</li>
{% endfor %}
</ul>
</body>
</html>

students/templates/students/student_form.html:

<!DOCTYPE html>
<html>
<head>
<title>Student Form</title>
</head>
<body>
<h1>{% if form.instance.pk %}Edit{% else %}New{% endif %} Student</h1>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Save</button>
</form>
<a href="{% url 'student_list' %}">Back to Student List</a>
</body>
</html>

students/templates/students/student_confirm_delete.html:

<!DOCTYPE html>
<html>
<head>
<title>Delete Student</title>
</head>
<body>
<h1>Are you sure you want to delete {{ student.first_name }}
{{ student.last_name }}?</h1>
<form method="post">
{% csrf_token %}
<button type="submit">Confirm</button>
</form>
<a href="{% url 'student_list' %}">Cancel</a>
</body>
</html>

11. Migrate Database

python manage.py makemigrations


python manage.py migrate

12. Create Superuser (for admin access)

python manage.py createsuperuser


13. Run the Server

python manage.py runserver

You can now navigate to http://127.0.0.1:8000/students/ to see the list of students and perform CRUD
operations.

You might also like