Wednesday, June 24, 2026

Django Table

 

WEEK 9 – THURSDAY

TOPIC: Creating a Database Table in Django Using MySQL

Sub-topic: Creating a Student Table with Django Models and Migrations


What We Are Doing in This Practical

We already have:

  • A Django project

  • A Django app called students

  • A MySQL database called student_portal

  • Django connected to MySQL in settings.py

Now, we want to create a Student table inside the student_portal database.

The table will store:

  • Student full name

  • Student email

  • Student course


STEP 1: Open the models.py File

Go to this file:

students/models.py

What we are doing

We are opening the file where Django allows us to describe a database table using Python code.

In Django, we do not need to first create the table manually in MySQL. We create a model in models.py, and Django uses it to create the table for us.


STEP 2: Import Django Database Tools

Inside students/models.py, write:

from django.db import models

What we are doing

We are bringing Django’s database tools into our file.

We need these tools because they help us create:

  • Tables

  • Columns

  • Text fields

  • Email fields

  • Number fields

  • Date fields

Meaning of the code

CodeMeaning
fromTake something from another place
djangoThe Django framework
.dbDjango database section
importBring a tool into this file
modelsTools for creating tables and columns

STEP 3: Create the Student Model

Under the import line, write:

class Student(models.Model):

What we are doing

We are creating a Django model called Student.

A model is like a blueprint for a database table.

Django will use this blueprint to create a table for students inside MySQL.

Meaning of the code

CodeMeaning
classCreate a blueprint/template
StudentThe name of our model
models.ModelTells Django that this is a database table
:Starts the code inside the model

Table name Django will create

Because our app is called students and our model is called Student, Django will normally create:

students_student

STEP 4: Create the Full Name Column

Inside the Student model, write:

full_name = models.CharField(max_length=100)

What we are doing

We are creating a column called full_name.

This column will store each student’s name.

Examples:

Musa Ibrahim
Aisha Bello
John David

Meaning of the code

CodeMeaning
full_nameName of the column
=Give this column a field type
models.CharFieldStore short text
max_length=100Allow a maximum of 100 characters

STEP 5: Create the Email Column

Write:

email = models.EmailField()

What we are doing

We are creating a column called email.

This column will store each student’s email address.

Examples:

musa@gmail.com
aisha@gmail.com

Meaning of the code

CodeMeaning
emailName of the column
=Give this column a field type
models.EmailField()Store email addresses and check email format

STEP 6: Create the Course Column

Write:

course = models.CharField(max_length=100)

What we are doing

We are creating a column called course.

This column will store the course each student is studying.

Examples:

Python Programming
Web Development
Data Analysis

Meaning of the code

CodeMeaning
courseName of the column
models.CharFieldStore short text
max_length=100Allow a maximum of 100 characters

STEP 7: Save the Complete Model

Your complete students/models.py file should look like this:

from django.db import models

class Student(models.Model):
    full_name = models.CharField(max_length=100)
    email = models.EmailField()
    course = models.CharField(max_length=100)

What we have done

We have created the blueprint for a student table.

At this point, the table is not yet inside MySQL. Django only knows what the table should look like.


STEP 8: Create a Migration File

Open your terminal inside the project folder where manage.py is located.

Run:

python manage.py makemigrations

What we are doing

We are telling Django:

“Look at my model and prepare instructions for creating the table.”

Django creates a migration file inside:

students/migrations/

You may see:

Migrations for 'students':
  students/migrations/0001_initial.py
    + Create model Student

Meaning of the command

CodeMeaning
pythonRun Python
manage.pyDjango command file
makemigrationsCreate instructions for database changes

STEP 9: Send the Table to MySQL

Run:

python manage.py migrate

What we are doing

We are telling Django:

“Use the migration instructions and create the table inside the MySQL database.”

Django connects to the database named student_portal because that is the database name written in settings.py.

After this command, the students_student table is created inside MySQL.

Meaning of the command

CodeMeaning
pythonRun Python
manage.pyDjango command file
migrateApply the migration instructions to the database

STEP 10: Check the Table in MySQL

Open MySQL Workbench.

Run:

USE student_portal;

What we are doing

We are selecting the database where our table was created.

Meaning of the code

CodeMeaning
USESelect a database
student_portalThe database name
;End the MySQL command

STEP 11: Show All Tables

Run:

SHOW TABLES;

What we are doing

We are asking MySQL to show every table inside the student_portal database.

You should see:

students_student

You may also see Django tables such as:

auth_user
django_admin_log
django_migrations
django_session

STEP 12: Check the Columns in the Student Table

Run:

DESCRIBE students_student;

What we are doing

We are asking MySQL to show the columns inside the students_student table.

You should see columns similar to:

ColumnMeaning
idAutomatic student number created by Django
full_nameStudent’s full name
emailStudent’s email
courseStudent’s course

Final Summary

Create Student model in models.py
        ↓
Create migration with makemigrations
        ↓
Run migrate
        ↓
Django creates students_student table in MySQL
        ↓
Check the table in MySQL Workbench

1 comments:

Janki Devi Vocational Centre said...

Absolutely! Here’s another 100-word blog comment:
“Thank you for sharing such a well-written and informative post. I found the topic very interesting and appreciated the way you explained each point in a simple and understandable manner. The information provided is useful, practical, and easy to follow. I especially enjoyed the detailed explanations because they make the article more engaging and helpful for readers. It is clear that a lot of effort has gone into creating this valuable content. Articles like this are a great source of knowledge and inspiration. I’m looking forward to reading more informative posts from you. Keep sharing valuable content and doing great work!” !” Best Fashion Designing institute in Delhi NCR
Best Makeup Training Institute in Delhi NCR.
best computer institute in delhi NCR
Typing & Shorthand Institute in Delhi NCR


Post a Comment

 

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