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

Mysql Crud Operations Using Django

Uploaded by

Akanksha Patil
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views

Mysql Crud Operations Using Django

Uploaded by

Akanksha Patil
Copyright
© © All Rights Reserved
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