{"id":80726,"date":"2021-05-12T10:54:36","date_gmt":"2021-05-12T05:24:36","guid":{"rendered":"https:\/\/techvidvan.com\/tutorials\/?p=80726"},"modified":"2026-06-03T15:48:41","modified_gmt":"2026-06-03T10:18:41","slug":"online-school-management-system-python-django-project","status":"publish","type":"post","link":"https:\/\/techvidvan.com\/tutorials\/online-school-management-system-python-django-project\/","title":{"rendered":"Online School Management System Python Django Project"},"content":{"rendered":"<p>Online school management system is an advanced level python project. We will be using Django (python open-source framework) and Sqlite3 database to implement the same<\/p>\n<h3>Project Functionalities:<\/h3>\n<ul>\n<li>Add attendance<\/li>\n<li>Add marks<\/li>\n<li>Add notice<\/li>\n<li>Check attendance<\/li>\n<li>Check notice<\/li>\n<li>Check marks<\/li>\n<\/ul>\n<h3>School Management System Project Prerequisites<\/h3>\n<p>To install the required libraries, please use pip installer from the terminal:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">pip install Django\r\n<\/pre>\n<h3>Download School Management System Source Code<\/h3>\n<p>Please download the source code of online school management system in django: <a href=\"https:\/\/drive.google.com\/file\/d\/1NWm70EAzOMMZmvxAxbHrVvHrmRHWgK-i\/view?usp=drive_link\"><strong>Online School Management System Project Code<\/strong><\/a><\/p>\n<h2>Steps to Create School Management Project in Python Django<\/h2>\n<h3>1. Start Project<\/h3>\n<p>Django itself creates a project and an app with all the necessary files if we run the following commands<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">django-admin startproject OnlineSchoolMgmt\r\ncd OnlineSchoolMgmt\r\ndjango-admin startapp app\r\n<\/pre>\n<h3>2. Writing Models<\/h3>\n<p><strong>Code:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">from django.db import models\r\nfrom django.contrib.auth.models import User\r\n \r\n# Create your models here.\r\n \r\nclass Attendance(models.Model):\r\n    StudentName = models.CharField(max_length=200,null=True)\r\n    StudentId  = models.CharField(max_length=50,null=True)\r\n    LecturesAttended = models.IntegerField(null=True)\r\n    TotalLectures  = models.IntegerField(null=True)\r\n \r\n    def __str__(self):\r\n        return self.StudentName\r\n \r\nclass Marks(models.Model):\r\n    StudentName = models.CharField(max_length=200,null=True)\r\n    StudentId  = models.CharField(max_length=50,null=True)\r\n    PhysicsMarks = models.IntegerField(null=True)\r\n    ChemistryMarks  = models.IntegerField(null=True)\r\n    MathsMarks  = models.IntegerField(null=True)\r\n    EnglishMarks  = models.IntegerField(null=True)\r\n    ComputerMarks  = models.IntegerField(null=True)\r\n \r\n    def __str__(self):\r\n        return self.StudentName\r\n \r\nclass Notice(models.Model):\r\n    Message = models.CharField(max_length=200,null=True)\r\n    date_created = models.DateTimeField(auto_now_add=True)\r\n    \r\n    def __str__(self):\r\n        return self.Message\r\n<\/pre>\n<p>In this school management system project, we have created 3 models. In other words, we have created 3 tables to store the details of student\u2019s attendance, marks, and the notice (if any) drafted by the school authorities.<\/p>\n<p>Now, to actually create the tables, we have to execute the following two commands:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">Py manage.py makemigrations\r\nPy manage.py migrate\r\n<\/pre>\n<h3>3. forms.py<\/h3>\n<p>Django does not create this file, so we have to create this new file in the app folder and then you can type the following code in forms.py.<\/p>\n<p>Forms.py is required to implement CRUD functionality i.e. for creating, retrieving, updating and deleting objects from the database. So we have created a form for each model we have defined.<\/p>\n<p><strong>Code:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">from django.forms import ModelForm\r\nfrom .models import *\r\nfrom django.contrib.auth.forms import UserCreationForm\r\nfrom django.contrib.auth.models import User\r\n \r\nclass createuserform(UserCreationForm):\r\n    class Meta:\r\n        model=User\r\n        fields=['username','password'] \r\n \r\nclass addAttendanceform(ModelForm):\r\n    class Meta:\r\n        model=Attendance\r\n        fields=\"__all__\"\r\n \r\nclass addMarksform(ModelForm):\r\n    class Meta:\r\n        model=Marks\r\n        fields=\"__all__\"\r\n \r\nclass addNoticeform(ModelForm):\r\n    class Meta:\r\n        model=Notice\r\n        fields=\"__all__\"\r\n<\/pre>\n<h3>4. admin.py<\/h3>\n<p><strong>Code:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">from django.contrib import admin\r\nfrom .models import *\r\n \r\n# Register your models here.\r\nadmin.site.register(Atttendance)\r\nadmin.site.register(Notice)\r\nadmin.site.register(Marks)\r\n<\/pre>\n<p>Django provides an inbuilt admin panel for online school management project (for every project). We have to register the models we have created on admin panel so that we can access the data from admin panel also. But for that we require a staff user, to create a superuser (admin) run the following commands:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">py manage.py createsuperuser<\/pre>\n<p>It will ask following details: username, email, and password.<\/p>\n<h3>5. urls.py<\/h3>\n<p><strong>Code:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">\"\"\"OnlineSchoolMgmt URL Configuration\r\n \r\nThe `urlpatterns` list routes URLs to views. For more information please see:\r\n    https:\/\/docs.djangoproject.com\/en\/3.1\/topics\/http\/urls\/\r\nExamples:\r\nFunction views\r\n    1. Add an import:  from my_app import views\r\n    2. Add a URL to urlpatterns:  path('', views.home, name='home')\r\nClass-based views\r\n    1. Add an import:  from other_app.views import Home\r\n    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')\r\nIncluding another URLconf\r\n    1. Import the include() function: from django.urls import include, path\r\n    2. Add a URL to urlpatterns:  path('blog\/', include('blog.urls'))\r\n\"\"\"\r\nfrom django.contrib import admin\r\nfrom django.urls import path\r\nfrom app.views import*\r\n \r\nurlpatterns = [\r\n    path('admin\/', admin.site.urls),\r\n    path('',home ,name='home'),\r\n   \r\n    path('addAttendance\/', addAttendance,name='addAttendance'),\r\n   \r\n    path('addMarks\/', addMarks,name='addMarks'),\r\n \r\n    path('addNotice\/', addNotice,name='addNotice'),\r\n \r\n    path('login\/', loginPage,name='login'),\r\n    path('logout\/', logoutPage,name='logout'),\r\n    path('register\/', registerPage,name='register'),\r\n]\r\n<\/pre>\n<p>We have defined the url patterns in this file.<\/p>\n<h3>6. views.py:<\/h3>\n<p><strong>Code:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">from django.shortcuts import redirect,render\r\nfrom django.contrib.auth import login,logout,authenticate\r\nfrom django.http import HttpResponse\r\nfrom .forms import *\r\n \r\ndef home(request):\r\n    notice = Notice.objects.all()\r\n    attendance = Attendance.objects.all()\r\n    marks = Marks.objects.all()\r\n \r\n    context = {\r\n        'notice':notice,\r\n        'marks':marks,\r\n        'attendance':attendance,\r\n    }\r\n    return render(request,'app\/home.html',context)\r\n \r\ndef addAttendance(request):    \r\n    if request.user.is_authenticated:\r\n        form=addAttendanceform()\r\n        if(request.method=='POST'):\r\n            form=addAttendanceform(request.POST)\r\n            if(form.is_valid()):\r\n                form.save()\r\n                return redirect('\/')\r\n        context={'form':form}\r\n        return render(request,'app\/addAttendance.html',context)\r\n    else: \r\n        return redirect('home')\r\n \r\ndef addMarks(request): \r\n    if request.user.is_authenticated:\r\n        form=addMarksform()\r\n        if(request.method=='POST'):\r\n            form=addMarksform(request.POST)\r\n            if(form.is_valid()):\r\n                form.save()\r\n                return redirect('\/')\r\n        context={'form':form}\r\n        return render(request,'app\/addMarks.html',context)\r\n    else: \r\n        return redirect('home')  \r\n \r\ndef addNotice(request):    \r\n    if request.user.is_authenticated:\r\n        form=addNoticeform()\r\n        if(request.method=='POST'):\r\n            form=addNoticeform(request.POST)\r\n            if(form.is_valid()):\r\n                form.save()\r\n                return redirect('\/')\r\n        context={'form':form}\r\n        return render(request,'app\/addNotice.html',context)\r\n    else: \r\n        return redirect('home') \r\n \r\ndef registerPage(request):\r\n    if request.user.is_authenticated:\r\n        return redirect('home') \r\n    else: \r\n        form=createuserform()\r\n        if request.method=='POST':\r\n            form=createuserform(request.POST)\r\n            if form.is_valid() :\r\n                user=form.save()\r\n                return redirect('login')\r\n        context={\r\n            'form':form,\r\n        }\r\n        return render(request,'app\/register.html',context)\r\n \r\ndef loginPage(request):\r\n    if request.user.is_authenticated:\r\n        return redirect('home')\r\n    else:\r\n       if request.method==\"POST\":\r\n        username=request.POST.get('username')\r\n        password=request.POST.get('password')\r\n        user=authenticate(request,username=username,password=password)\r\n        if user is not None:\r\n            login(request,user)\r\n            return redirect('\/')\r\n       context={}\r\n       return render(request,'app\/login.html',context)\r\n \r\ndef logoutPage(request):\r\n    logout(request)\r\n    return redirect('\/')\r\n<\/pre>\n<p>The very first function is home which renders all the entries from Attendance, Marks, and Notice table and pass them to home.html. Home.html (which is the home page of school management project) displays all the information in tabular form.<\/p>\n<h4>Home.html<\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">{% extends 'app\/Links.html' %}\r\n \r\n{% block content %}\r\n \r\n&lt;div class=\"container \"&gt;\r\n \r\n    &lt;br&gt;&lt;br&gt;\r\n&lt;div class=\"row\"&gt;\r\n    &lt;div class=\"col-md-9\"&gt;\r\n        &lt;h5&gt;Notice:&lt;\/h5&gt;\r\n        \r\n        &lt;div class=\"card card-body\"&gt;\r\n            &lt;table class=\"table table-sm\"&gt;\r\n                &lt;tr&gt;\r\n                    &lt;th&gt;Notice&lt;\/th&gt;\r\n                    &lt;th&gt;Date&lt;\/th&gt;\r\n                &lt;\/tr&gt;\r\n                {% for n in notice %}\r\n                &lt;tr&gt;\r\n                    &lt;td&gt;{{n.Message}} &lt;\/td&gt;\r\n                    &lt;td&gt;{{n.date_created}} &lt;\/td&gt;\r\n                &lt;\/tr&gt;\r\n                {% endfor %}\r\n            &lt;\/table&gt;\r\n        &lt;\/div&gt;\r\n    &lt;\/div&gt;\r\n&lt;\/div&gt;\r\n \r\n&lt;br&gt;&lt;br&gt;\r\n \r\n&lt;div class=\"row\"&gt;\r\n    &lt;div class=\"col-md-9\"&gt;\r\n        &lt;h5&gt;Attendance:&lt;\/h5&gt;\r\n        \r\n        &lt;div class=\"card card-body\"&gt;\r\n            &lt;table class=\"table table-sm\"&gt;\r\n                &lt;tr&gt;\r\n                    &lt;th&gt;Student Id&lt;\/th&gt;\r\n                    &lt;th&gt;Student Name&lt;\/th&gt;\r\n                    &lt;th&gt;Attended Lectures&lt;\/th&gt;                    \r\n                    &lt;th&gt;Total Lectures&lt;\/th&gt;\r\n                &lt;\/tr&gt;\r\n                {% for a in attendance %}\r\n                &lt;tr&gt;\r\n                    &lt;td&gt;{{a.StudentId}} &lt;\/td&gt;\r\n                    &lt;td&gt;{{a.StudentName}} &lt;\/td&gt;\r\n                    &lt;td&gt;{{a.LecturesAttended}} &lt;\/td&gt;\r\n                    &lt;td&gt; {{a.TotalLectures}} &lt;\/td&gt;\r\n                &lt;\/tr&gt;\r\n                {% endfor %}\r\n            &lt;\/table&gt;\r\n        &lt;\/div&gt;\r\n    &lt;\/div&gt;\r\n&lt;\/div&gt;\r\n \r\n&lt;br&gt;&lt;br&gt;\r\n \r\n&lt;div class=\"row\"&gt;\r\n    &lt;div class=\"col-md-9\"&gt;\r\n        &lt;h5&gt;Marks:&lt;\/h5&gt;\r\n        \r\n        &lt;div class=\"card card-body\"&gt;\r\n            \r\n            &lt;table class=\"table table-sm\"&gt;\r\n                &lt;tr&gt;\r\n                    &lt;th&gt;Student Id&lt;\/th&gt;\r\n                    &lt;th&gt;Student Name&lt;\/th&gt;\r\n                    &lt;th&gt;Physics Marks&lt;\/th&gt;      \r\n                    &lt;th&gt;Chemistry Marks&lt;\/th&gt;      \r\n                    &lt;th&gt;Maths Marks&lt;\/th&gt;      \r\n                    &lt;th&gt;English Marks&lt;\/th&gt;      \r\n                    &lt;th&gt;Computer Marks&lt;\/th&gt;  \r\n                &lt;\/tr&gt;\r\n                {% for m in marks %}\r\n                &lt;tr&gt;\r\n                    &lt;td&gt;{{m.StudentId}} &lt;\/td&gt;\r\n                    &lt;td&gt;{{m.StudentName}} &lt;\/td&gt;\r\n                    &lt;td&gt;{{m.PhysicsMarks}} &lt;\/td&gt;\r\n                    &lt;td&gt;{{m.ChemistryMarks}} &lt;\/td&gt;\r\n                    &lt;td&gt;{{m.MathsMarks}} &lt;\/td&gt;\r\n                    &lt;td&gt;{{m.EnglishMarks}} &lt;\/td&gt;\r\n                    &lt;td&gt;{{m.ComputerMarks}} &lt;\/td&gt;\r\n                &lt;\/tr&gt;\r\n                {% endfor %}\r\n            &lt;\/table&gt;\r\n            &lt;p&gt; &lt;b&gt;Note:&lt;\/b&gt; Marks are out of 100&lt;\/p&gt;\r\n        &lt;\/div&gt;\r\n    &lt;\/div&gt;\r\n&lt;\/div&gt;\r\n\r\n\r\n\r\n{% endblock %}\r\n<\/pre>\n<h4>Admin Home Page:<\/h4>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2021\/05\/admin-home-page-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-80729\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2021\/05\/admin-home-page-1.png\" alt=\"admin home page\" width=\"1366\" height=\"729\" \/><\/a><\/p>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2021\/05\/admin-home-page-2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-80730\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2021\/05\/admin-home-page-2.png\" alt=\"school admin home 2\" width=\"1366\" height=\"729\" \/><\/a><\/p>\n<h4>Student Home Page:<\/h4>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2021\/05\/school-student-home-page-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-80731\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2021\/05\/school-student-home-page-1.png\" alt=\"school student home\" width=\"1366\" height=\"729\" \/><\/a><\/p>\n<p>We can see the navigation bar for both the users are different.<\/p>\n<p>The next function in this file is addAttendance which uses addAttendanceform to create a new record in attendance table. This function is only for admin of school management project. If any other user attempts to access this, the user will get redirected to respective home page.<\/p>\n<h4>AddAttendance.html<\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">{% extends 'app\/Links.html' %}\r\n{% block content %}\r\n \r\n&lt;div class=\"jumbotron container row\"&gt;\r\n    &lt;div class=\"col-md-6\"&gt;\r\n        \r\n    &lt;h1&gt;Add Attendance&lt;\/h1&gt;\r\n        &lt;div class=\"card card-body\"&gt;\r\n           &lt;form action=\"\" method=\"POST\"&gt;\r\n              {% csrf_token %}\r\n                {{form.as_p}}\r\n                &lt;br&gt;\r\n             &lt;input type=\"submit\" name=\"Submit\"&gt;\r\n             &lt;\/form&gt;\r\n            &lt;\/div&gt;\r\n        &lt;\/div&gt;\r\n    &lt;\/div&gt;\r\n \r\n&lt;\/div&gt;\r\n{% endblock %}\r\n<\/pre>\n<h4>Add Attendance Page:<\/h4>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2021\/05\/add-attendance-admin.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-80732\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2021\/05\/add-attendance-admin.png\" alt=\"add attendance admin\" width=\"1366\" height=\"726\" \/><\/a><\/p>\n<p>Add Marks and Add Notice functions are very similar to this function<\/p>\n<h4>AddNotice.html<\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">{% extends 'app\/Links.html' %}\r\n{% block content %}\r\n \r\n&lt;div class=\"jumbotron container row\"&gt;\r\n    &lt;div class=\"col-md-6\"&gt;\r\n        &lt;h1&gt;Add Notice&lt;\/h1&gt;\r\n        &lt;div class=\"card card-body\"&gt;\r\n           &lt;form action=\"\" method=\"POST\"&gt;\r\n              {% csrf_token %}\r\n                {{form.as_p}}\r\n                &lt;br&gt;\r\n             &lt;input type=\"submit\" name=\"Submit\"&gt;\r\n             &lt;\/form&gt;\r\n            &lt;\/div&gt;\r\n        &lt;\/div&gt;\r\n    &lt;\/div&gt;\r\n \r\n&lt;\/div&gt;\r\n{% endblock %}\r\n<\/pre>\n<h4>Add Notice Page:<\/h4>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2021\/05\/add-notice-admin.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-80733\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2021\/05\/add-notice-admin.png\" alt=\"add notice admin\" width=\"1366\" height=\"729\" \/><\/a><\/p>\n<h4>AddMarks.html<\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">{% extends 'app\/Links.html' %}\r\n{% block content %}\r\n \r\n&lt;div class=\"jumbotron container row\"&gt;\r\n    &lt;div class=\"col-md-6\"&gt;\r\n        \r\n    &lt;h1&gt;Add Marks&lt;\/h1&gt;\r\n        &lt;div class=\"card card-body\"&gt;\r\n           &lt;form action=\"\" method=\"POST\"&gt;\r\n              {% csrf_token %}\r\n                {{form.as_p}}\r\n                &lt;br&gt;\r\n             &lt;input type=\"submit\" name=\"Submit\"&gt;\r\n             &lt;\/form&gt;\r\n            &lt;\/div&gt;\r\n        &lt;\/div&gt;\r\n    &lt;\/div&gt;\r\n \r\n&lt;\/div&gt;\r\n{% endblock %}\r\n<\/pre>\n<h4>Add Marks Page:<\/h4>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2021\/05\/add-marks-admin.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-80734\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2021\/05\/add-marks-admin.png\" alt=\"add marks admin\" width=\"1366\" height=\"729\" \/><\/a><\/p>\n<h3>7. Templates:<\/h3>\n<h4>Login.html<\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">{% extends 'app\/Links.html' %}\r\n{% load static%}\r\n{% block content %}\r\n&lt;div class=\"container jumbotron\"&gt;\r\n    &lt;form method=\"POST\" action=\"\"&gt;\r\n        {% csrf_token %}\r\n        &lt;p&gt;&lt;input type=\"text\" name=\"username\" placeholder=\"Username...\"&gt;&lt;\/p&gt;\r\n        &lt;p&gt;&lt;input type=\"password\" name=\"password\" placeholder=\"Password...\" &gt;&lt;\/p&gt;\r\n        &lt;input class=\"btn btn-success\" type=\"submit\" value=\"Login\"&gt;\r\n        &lt;p&gt;Do not have an account&lt;a href='{% url 'register' %}'&gt;Register&lt;\/a&gt;&lt;\/p&gt;\r\n    &lt;\/form&gt;\r\n&lt;\/div&gt;\r\n{% endblock %}\r\n<\/pre>\n<h4>Register.html<\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">{% extends 'app\/Links.html' %}\r\n{% load static%}\r\n{% block content %}\r\n&lt;div class=\"container jumbotron\"&gt;\r\n    &lt;form method=\"POST\" action=\"\" &gt;\r\n        {% csrf_token %}\r\n        {{form.as_p}}\r\n       \r\n        &lt;input class=\"btn btn-success\" type=\"submit\" value=\"Register Account\"&gt;\r\n    &lt;\/form&gt;\r\n&lt;\/div&gt;\r\n{% endblock %}\r\n<\/pre>\n<h4>Links.html<\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">{% load static %}\r\n&lt;html&gt;\r\n    &lt;head&gt;\r\n        &lt;title&gt;\r\n            TechVidvan Online School Management Project\r\n        &lt;\/title&gt;\r\n        &lt;link rel=\"stylesheet\" href=\"https:\/\/stackpath.bootstrapcdn.com\/bootstrap\/4.5.0\/css\/bootstrap.min.css\" integrity=\"sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk\" crossorigin=\"anonymous\"&gt;\r\n    &lt;\/head&gt;\r\n    &lt;body&gt;        \r\n        {% include 'app\/navbar.html' %}\r\n        {% block content %}   \r\n        {% endblock %}\r\n        &lt;br&gt;\r\n       \r\n        &lt;script src=\"https:\/\/code.jquery.com\/jquery-3.5.1.slim.min.js\" integrity=\"sha384-DfXdz2htPH0lsSSs5nCTpuj\/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj\" crossorigin=\"anonymous\"&gt;&lt;\/script&gt;\r\n    &lt;script src=\"https:\/\/cdn.jsdelivr.net\/npm\/popper.js@1.16.0\/dist\/umd\/popper.min.js\" integrity=\"sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo\" crossorigin=\"anonymous\"&gt;&lt;\/script&gt;\r\n    &lt;script src=\"https:\/\/stackpath.bootstrapcdn.com\/bootstrap\/4.5.0\/js\/bootstrap.min.js\" integrity=\"sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh\/kR0JKI\" crossorigin=\"anonymous\"&gt;&lt;\/script&gt;\r\n    &lt;\/body&gt;\r\n&lt;\/html&gt;\r\n<\/pre>\n<h4>navbar.html<\/h4>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">{% load static %}\r\n \r\n&lt;style&gt;\r\n  .greet{\r\n    font-size: 18px;\r\n    color: #fff;\r\n    margin-right: 20px;\r\n  }\r\n&lt;\/style&gt;\r\n \r\n&lt;nav class=\"navbar navbar-expand-lg navbar-dark bg-dark\"&gt;\r\n  &lt;button class=\"navbar-toggler\" type=\"button\" data-toggle=\"collapse\" data-target=\"#navbarNav\" aria-controls=\"navbarNav\" aria-expanded=\"false\" aria-label=\"Toggle navigation\"&gt;\r\n    &lt;span class=\"navbar-toggler-icon\"&gt;&lt;\/span&gt;\r\n  &lt;\/button&gt;\r\n  &lt;div class=\"collapse navbar-collapse\" id=\"navbarNav\"&gt;\r\n \r\n    &lt;ul class=\"navbar-nav\"&gt;\r\n      \r\n      &lt;li class=\"nav-item active\"&gt;\r\n        &lt;a class=\"nav-link\" href=\"{% url 'home' %}\"&gt;Home&lt;\/a&gt;\r\n      &lt;\/li&gt;\r\n      {% if request.user.is_staff %}\r\n      &lt;\/li&gt;\r\n      &lt;li class=\"nav-item active\"&gt;\r\n        &lt;a class=\"nav-link\" href=\"{% url 'addAttendance' %}\"&gt;Add Attendance&lt;\/a&gt;\r\n      &lt;\/li&gt;\r\n      &lt;li class=\"nav-item active\"&gt;\r\n        &lt;a class=\"nav-link\" href=\"{% url 'addNotice' %}\"&gt;Add Notice&lt;\/a&gt;\r\n      &lt;\/li&gt;\r\n      &lt;li class=\"nav-item active\"&gt;\r\n        &lt;a class=\"nav-link\" href=\"{% url 'addMarks' %}\"&gt;Add Marks&lt;\/a&gt;\r\n      &lt;\/li&gt;\r\n      {% endif %}\r\n      &lt;li class=\"nav-item\"&gt;\r\n        &lt;a class=\"nav-link\" href=\"{% url 'login' %}\"&gt;Login&lt;\/a&gt;\r\n      &lt;\/li&gt;\r\n    &lt;\/ul&gt;\r\n  &lt;\/div&gt;\r\n  {% if request.user.is_staff %}\r\n  &lt;span class=\"greet\"&gt;Hello, {{request.user}}&lt;\/span&gt;\r\n  &lt;span &gt;&lt;a  class=\"greet\" href=\"{% url 'logout' %}\"&gt;Logout&lt;\/a&gt;&lt;\/span&gt;\r\n  {% endif %}\r\n \r\n&lt;\/nav&gt;\r\n<\/pre>\n<h2>Summary<\/h2>\n<p>We have successfully developed the online school management system python django project. We have used popular django framework for web development which provides tons of functionalities and templates to make the development easy.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Online school management system is an advanced level python project. We will be using Django (python open-source framework) and Sqlite3 database to implement the same Project Functionalities: Add attendance Add marks Add notice Check&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":80736,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3383],"tags":[3382,3438,483,3439],"class_list":["post-80726","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-django","tag-django-project","tag-online-school-management-system","tag-python-project","tag-python-school-management-system"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Online School Management System Python Django Project - TechVidvan<\/title>\n<meta name=\"description\" content=\"Online school management system is an advanced level python django project. The project provides complete school management functionalities like: attendance, marks, notice with admin and student view\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/techvidvan.com\/tutorials\/online-school-management-system-python-django-project\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Online School Management System Python Django Project - TechVidvan\" \/>\n<meta property=\"og:description\" content=\"Online school management system is an advanced level python django project. The project provides complete school management functionalities like: attendance, marks, notice with admin and student view\" \/>\n<meta property=\"og:url\" content=\"https:\/\/techvidvan.com\/tutorials\/online-school-management-system-python-django-project\/\" \/>\n<meta property=\"og:site_name\" content=\"TechVidvan\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/TechVidvan\/\" \/>\n<meta property=\"article:published_time\" content=\"2021-05-12T05:24:36+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-03T10:18:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2021\/05\/online-school-management-system-python-django-project.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"TechVidvan Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@vidvantech\" \/>\n<meta name=\"twitter:site\" content=\"@vidvantech\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"TechVidvan Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Online School Management System Python Django Project - TechVidvan","description":"Online school management system is an advanced level python django project. The project provides complete school management functionalities like: attendance, marks, notice with admin and student view","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/techvidvan.com\/tutorials\/online-school-management-system-python-django-project\/","og_locale":"en_US","og_type":"article","og_title":"Online School Management System Python Django Project - TechVidvan","og_description":"Online school management system is an advanced level python django project. The project provides complete school management functionalities like: attendance, marks, notice with admin and student view","og_url":"https:\/\/techvidvan.com\/tutorials\/online-school-management-system-python-django-project\/","og_site_name":"TechVidvan","article_publisher":"https:\/\/www.facebook.com\/TechVidvan\/","article_published_time":"2021-05-12T05:24:36+00:00","article_modified_time":"2026-06-03T10:18:41+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2021\/05\/online-school-management-system-python-django-project.jpg","type":"image\/jpeg"}],"author":"TechVidvan Team","twitter_card":"summary_large_image","twitter_creator":"@vidvantech","twitter_site":"@vidvantech","twitter_misc":{"Written by":"TechVidvan Team","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/techvidvan.com\/tutorials\/online-school-management-system-python-django-project\/#article","isPartOf":{"@id":"https:\/\/techvidvan.com\/tutorials\/online-school-management-system-python-django-project\/"},"author":{"name":"TechVidvan Team","@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/person\/e9c26e74dd3d87421f7ada9433b8cd22"},"headline":"Online School Management System Python Django Project","datePublished":"2021-05-12T05:24:36+00:00","dateModified":"2026-06-03T10:18:41+00:00","mainEntityOfPage":{"@id":"https:\/\/techvidvan.com\/tutorials\/online-school-management-system-python-django-project\/"},"wordCount":492,"commentCount":0,"publisher":{"@id":"https:\/\/techvidvan.com\/tutorials\/#organization"},"image":{"@id":"https:\/\/techvidvan.com\/tutorials\/online-school-management-system-python-django-project\/#primaryimage"},"thumbnailUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2021\/05\/online-school-management-system-python-django-project.jpg","keywords":["Django Project","online school management system","Python project","python school management system"],"articleSection":["Django Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/techvidvan.com\/tutorials\/online-school-management-system-python-django-project\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/techvidvan.com\/tutorials\/online-school-management-system-python-django-project\/","url":"https:\/\/techvidvan.com\/tutorials\/online-school-management-system-python-django-project\/","name":"Online School Management System Python Django Project - TechVidvan","isPartOf":{"@id":"https:\/\/techvidvan.com\/tutorials\/#website"},"primaryImageOfPage":{"@id":"https:\/\/techvidvan.com\/tutorials\/online-school-management-system-python-django-project\/#primaryimage"},"image":{"@id":"https:\/\/techvidvan.com\/tutorials\/online-school-management-system-python-django-project\/#primaryimage"},"thumbnailUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2021\/05\/online-school-management-system-python-django-project.jpg","datePublished":"2021-05-12T05:24:36+00:00","dateModified":"2026-06-03T10:18:41+00:00","description":"Online school management system is an advanced level python django project. The project provides complete school management functionalities like: attendance, marks, notice with admin and student view","breadcrumb":{"@id":"https:\/\/techvidvan.com\/tutorials\/online-school-management-system-python-django-project\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/techvidvan.com\/tutorials\/online-school-management-system-python-django-project\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/techvidvan.com\/tutorials\/online-school-management-system-python-django-project\/#primaryimage","url":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2021\/05\/online-school-management-system-python-django-project.jpg","contentUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2021\/05\/online-school-management-system-python-django-project.jpg","width":1200,"height":628,"caption":"online school management system python django project"},{"@type":"BreadcrumbList","@id":"https:\/\/techvidvan.com\/tutorials\/online-school-management-system-python-django-project\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/techvidvan.com\/tutorials\/"},{"@type":"ListItem","position":2,"name":"Online School Management System Python Django Project"}]},{"@type":"WebSite","@id":"https:\/\/techvidvan.com\/tutorials\/#website","url":"https:\/\/techvidvan.com\/tutorials\/","name":"TechVidvan Blogs","description":"","publisher":{"@id":"https:\/\/techvidvan.com\/tutorials\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/techvidvan.com\/tutorials\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/techvidvan.com\/tutorials\/#organization","name":"TechVidvan","url":"https:\/\/techvidvan.com\/tutorials\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/logo\/image\/","url":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2024\/03\/techvidvan-logo-200x50-1.webp","contentUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2024\/03\/techvidvan-logo-200x50-1.webp","width":200,"height":50,"caption":"TechVidvan"},"image":{"@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/TechVidvan\/","https:\/\/x.com\/vidvantech"]},{"@type":"Person","@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/person\/e9c26e74dd3d87421f7ada9433b8cd22","name":"TechVidvan Team","description":"The TechVidvan Team delivers practical, beginner-friendly tutorials on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. Our experts are here to help you upskill and excel in today\u2019s tech industry."}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts\/80726","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/comments?post=80726"}],"version-history":[{"count":2,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts\/80726\/revisions"}],"predecessor-version":[{"id":448134,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts\/80726\/revisions\/448134"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/media\/80736"}],"wp:attachment":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/media?parent=80726"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/categories?post=80726"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/tags?post=80726"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}