

{"id":82082,"date":"2020-09-12T21:16:13","date_gmt":"2020-09-12T15:46:13","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=82082"},"modified":"2026-06-01T12:01:03","modified_gmt":"2026-06-01T06:31:03","slug":"online-job-portal-python-project","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/online-job-portal-python-project\/","title":{"rendered":"Online Job Portal &#8211; Python Project with Source Code"},"content":{"rendered":"<p>Work on an intermediate level python django project &#8211; <strong>Online Job Portal in Python<\/strong><\/p>\n<p>The objective of this python project is to develop an online portal where recruiters can post job requirements, they can search for candidates. Candidates can search for job openings and apply.<\/p>\n<p>Let\u2019s look at some important points before starting<\/p>\n<p><strong>Users<\/strong><\/p>\n<ol>\n<li>HR (employer)<\/li>\n<li>Job seeker (Student or employee)<\/li>\n<li>Admin<\/li>\n<\/ol>\n<p><strong>Job Portal Functionalities<\/strong><\/p>\n<ol>\n<li>Login and Sign up for HR, not for Job seekers because there are a lot of websites where they would be applying, so logging in and remembering all usernames and passwords would be really hectic and why would we want that? So it is better to ask about their information when they actually apply for some company. But HR would have access to details of the job seekers, for which authorization is required.<\/li>\n<li>Listing of available jobs.<\/li>\n<li>Resume upload and apply to an organization.<\/li>\n<li>List of all candidates to the HR.<\/li>\n<\/ol>\n<p><strong>Data to be stored<\/strong><\/p>\n<p><strong>For HR:<\/strong><\/p>\n<ol>\n<li>Name of the organization.<\/li>\n<li>Position<\/li>\n<li>Job description<\/li>\n<li>Salary<\/li>\n<li>Location<\/li>\n<li>Experience<\/li>\n<\/ol>\n<p>For Job seekers:<\/p>\n<ol>\n<li>Name<\/li>\n<li>DOB<\/li>\n<li>Gender<\/li>\n<li>Mobile<\/li>\n<li>Email<\/li>\n<li>Resume<\/li>\n<li>Organization name (the one on which he is applying)<\/li>\n<\/ol>\n<h3>Project Prerequisites<\/h3>\n<p>We will use the following technologies:<\/p>\n<ul>\n<li>Python<\/li>\n<li>HTML<\/li>\n<li>CSS<\/li>\n<li>Bootstrap<\/li>\n<li>Django framework<\/li>\n<\/ul>\n<p>To install the Django framework, type the following command on your console \/ terminal.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">pip install Django\r\n<\/pre>\n<h3>Download Python Job Portal Code<\/h3>\n<p>Please download the source code of job portal project: <a href=\"https:\/\/drive.google.com\/file\/d\/16z7pDltJU67wakV4vfM5f0kVcbJw8zI0\/view?usp=drive_link\"><strong>Job Portal in Python Django<\/strong><\/a><\/p>\n<h2>Steps to develop the job portal project:<\/h2>\n<h3>1. Writing Models<\/h3>\n<p>For storing the data we need to connect our server to a database, which models.py will handle.<\/p>\n<p><strong>Code<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">from\u00a0django.db\u00a0import\u00a0models\r\nfrom\u00a0django.contrib.auth.models\u00a0import\u00a0User\r\n\r\n#\u00a0Create\u00a0your\u00a0models\u00a0here.\r\nclass\u00a0Company(models.Model):\r\n\u00a0\u00a0\u00a0\u00a0user=models.OneToOneField(User,null=True,on_delete=models.CASCADE)\r\n\u00a0\u00a0\u00a0\u00a0name=models.CharField(max_length=200,null=True)\r\n\u00a0\u00a0\u00a0\u00a0position=models.CharField(max_length=200,null=True)\r\n\u00a0\u00a0\u00a0\u00a0description=models.CharField(max_length=2000,null=True)\r\n\u00a0\u00a0\u00a0\u00a0salary=models.IntegerField(null=True)\r\n\u00a0\u00a0\u00a0\u00a0experience=models.IntegerField(null=True)\r\n\u00a0\u00a0\u00a0\u00a0Location=models.CharField(max_length=2000,null=True)\r\n\r\n\u00a0\u00a0\u00a0\u00a0def\u00a0__str__(self):\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return\u00a0self.name\r\n\r\n\r\nclass\u00a0Candidates(models.Model):\r\n\u00a0\u00a0\u00a0\u00a0category=(\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0('Male','male'),\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0('Female','female'),\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0('Other','other'),\r\n\u00a0\u00a0\u00a0\u00a0)\r\n\r\n\u00a0\u00a0\u00a0\u00a0name=models.CharField(max_length=200,null=True)\r\n\u00a0\u00a0\u00a0\u00a0dob=models.DateField(null=True)\r\n\u00a0\u00a0\u00a0\u00a0gender=\u00a0models.CharField(max_length=200,null=True,choices=category)\r\n\u00a0\u00a0\u00a0\u00a0mobile=\u00a0models.CharField(max_length=200,null=True)\r\n\u00a0\u00a0\u00a0\u00a0email=\u00a0models.CharField(max_length=200,null=True)\r\n\u00a0\u00a0\u00a0\u00a0resume=models.FileField(null=True)\r\n\u00a0\u00a0\u00a0\u00a0company=models.ManyToManyField(Company,blank=True)\r\n\r\n\u00a0\u00a0\u00a0\u00a0def\u00a0__str__(self):\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return\u00a0self.name\r\n<\/pre>\n<h3>2. forms.py<\/h3>\n<p><strong>Code<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">from\u00a0django.forms\u00a0import\u00a0ModelForm\r\nfrom\u00a0.models\u00a0import\u00a0*\r\n\r\nclass\u00a0ApplyForm(ModelForm):\r\n\u00a0\u00a0\u00a0\u00a0class\u00a0Meta:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0model=Candidates\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0fields=\"__all__\"\r\n<\/pre>\n<p>Here, we are making an &#8220;apply form&#8221; for job seekers using Django\u2019s ModelForm class.<\/p>\n<h3>3. admin.py<\/h3>\n<p><strong>Code<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">from\u00a0django.contrib\u00a0import\u00a0admin\r\nfrom\u00a0.models\u00a0import\u00a0*\r\n\r\n#\u00a0Register\u00a0your\u00a0models\u00a0here.\r\nadmin.site.register(Company)\r\nadmin.site.register(Candidates)\r\n<\/pre>\n<p>We need to register the models on the admin site so that we can anytime create, update, or delete the model objects.<\/p>\n<p>We also need a superuser who has complete access to all the information. To create a superuser:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">Py manage.py createsuperuser<\/pre>\n<h3>4. settings.py<\/h3>\n<p><strong>Code<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">STATIC_URL\u00a0=\u00a0'\/static\/'\r\nMEDIA_URL='\/media\/'\r\nMEDIA_ROOT=os.path.join(BASE_DIR,'media\/')\r\n<\/pre>\n<p>We will use FileField to upload resumes, so we need to configure MEDIA_URL in setting.py as it is not configured by default.<\/p>\n<p>For this, we have to append the above code in settings.py. Also, we need to update the base urls.py file which is explained in the next step.<\/p>\n<h3>5. urls.py<\/h3>\n<p><strong>Code<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">from\u00a0django.contrib\u00a0import\u00a0admin\r\nfrom\u00a0django.urls\u00a0import\u00a0path,include\r\nfrom\u00a0django.conf\u00a0import\u00a0settings\r\nfrom\u00a0django.conf.urls.static\u00a0import\u00a0static\r\n\r\nurlpatterns\u00a0=\u00a0[\r\n\u00a0\u00a0\u00a0\u00a0path('admin\/',\u00a0admin.site.urls),\r\n\u00a0\u00a0\u00a0\u00a0path('',include('JobPortal.urls'))\r\n] +\u00a0static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)\r\n<\/pre>\n<p><strong>JobPortal\/urls.py:<\/strong><\/p>\n<p><strong>Code<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">from\u00a0django.urls\u00a0import\u00a0path\r\nfrom\u00a0.views\u00a0import\u00a0*\r\n\r\nurlpatterns\u00a0=\u00a0[\r\n\u00a0\u00a0\u00a0\u00a0path('',home,name='home'),\r\n\u00a0\u00a0\u00a0\u00a0path('login\/',loginUser,name='login'),\r\n\u00a0\u00a0\u00a0\u00a0path('logout\/',logoutUser,name='logout'),\r\n\u00a0\u00a0\u00a0\u00a0path('register\/',registerUser,name='register'),\r\n\u00a0\u00a0\u00a0\u00a0path('apply\/',applyPage,name='apply'),\r\n]<\/pre>\n<h3>6. views.py<\/h3>\n<p><strong>Code<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">from\u00a0django.shortcuts\u00a0import\u00a0render,redirect\r\nfrom\u00a0.models\u00a0import\u00a0*\r\nfrom\u00a0django.contrib.auth.forms\u00a0import\u00a0UserCreationForm\r\nfrom\u00a0django.contrib.auth\u00a0import\u00a0login,logout,authenticate\r\nfrom\u00a0.forms\u00a0import\u00a0*\r\n\r\n#\u00a0Create\u00a0your\u00a0views\u00a0here.\r\ndef\u00a0home(request):\r\n\u00a0\u00a0\u00a0\u00a0if\u00a0request.user.is_authenticated:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0candidates=Candidates.objects.filter(company__name=request.user.username)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0context={\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'candidates':candidates,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return\u00a0render(request,'hr.html',context)\r\n\u00a0\u00a0\u00a0\u00a0else:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0companies=Company.objects.all()\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0context={\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'companies':companies,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return\u00a0render(request,'Jobseeker.html',context)\r\n\r\n\r\ndef\u00a0logoutUser(request):\r\n\u00a0\u00a0\u00a0\u00a0logout(request)\r\n\u00a0\u00a0\u00a0\u00a0return\u00a0redirect('login')\r\n\r\n\r\ndef\u00a0loginUser(request):\r\n\u00a0\u00a0\u00a0\u00a0if\u00a0request.user.is_authenticated:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return\u00a0redirect('home')\r\n\u00a0\u00a0\u00a0\u00a0else:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if\u00a0request.method==\"POST\":\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0name=request.POST.get('username')\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pwd=request.POST.get('password')\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0user=authenticate(request,username=name,password=pwd)\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if\u00a0user\u00a0is\u00a0not\u00a0None:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0login(request,user)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return\u00a0redirect('home')\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return\u00a0render(request,'login.html')\r\n\r\n\r\ndef\u00a0registerUser(request):\r\n\u00a0\u00a0\u00a0\u00a0if\u00a0request.user.is_authenticated:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return\u00a0redirect('home')\r\n\u00a0\u00a0\u00a0\u00a0else:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Form=UserCreationForm()\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if\u00a0request.method=='POST':\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Form=UserCreationForm(request.POST)\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if\u00a0Form.is_valid():\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0currUser=Form.save()\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Company.objects.create(user=currUser,name=currUser.username)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return\u00a0redirect('login')\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0context={\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'form':Form\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return\u00a0render(request,'register.html',context)\r\n\r\n\r\ndef\u00a0applyPage(request):\r\n\u00a0\u00a0\u00a0\u00a0form=ApplyForm()\r\n\u00a0\u00a0\u00a0\u00a0if\u00a0request.method=='POST':\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0form=ApplyForm(request.POST,request.FILES)\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if\u00a0form.is_valid():\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0form.save()\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return\u00a0redirect('home')\r\n\u00a0\u00a0\u00a0\u00a0context={'form':form}\r\n\u00a0\u00a0\u00a0\u00a0return\u00a0render(request,'apply.html',context)\r\n<\/pre>\n<p>We have created five functions in this file:<\/p>\n<p><strong>1. Home: It performs the following functions:<\/strong><\/p>\n<p>If the user is authenticated (HR): It filters all the candidates, applied to HR\u2019s organization, and passes them to the hr.html file, which displays all the candidates in tabular form and also provides an option to download their resumes.<\/p>\n<p><strong>Hr.html Code:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">{%\u00a0extends\u00a0'main.html'\u00a0%}\r\n{%\u00a0load\u00a0static%}\r\n\r\n{%\u00a0block\u00a0content\u00a0%}\r\n&lt;div\u00a0class=\"container\u00a0card\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;h1&gt;Candidates\u00a0applied&lt;\/h1&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;div\u00a0class=\"card-body\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;table\u00a0class=\"table\u00a0table-hover\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;tr&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;th&gt;Name&lt;\/th&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;th&gt;DOB&lt;\/th&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;th&gt;Resume&lt;\/th&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;th&gt;Gender&lt;\/th&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;th&gt;Mobile&lt;\/th&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;th&gt;Email&lt;\/th&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/tr&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{%\u00a0for\u00a0c\u00a0in\u00a0candidates\u00a0%}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;tr&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;td&gt;{{c.name}}&lt;\/td&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;td&gt;{{c.dob}}&lt;\/td&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{%\u00a0if\u00a0c.resume\u00a0%}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;td&gt;&lt;a\u00a0href='{{c.resume.url}}'\u00a0download\u00a0&gt;{{c.resume}}&lt;\/td&gt;&lt;\/a&gt;&lt;\/td&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{%\u00a0else\u00a0%}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;td&gt;Not\u00a0submitted&lt;\/td&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{%\u00a0endif\u00a0%}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;td&gt;{{c.gender}}&lt;\/td&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;td&gt;{{c.mobile}}&lt;\/td&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;td&gt;{{c.email}}&lt;\/td&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/tr&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{%\u00a0endfor\u00a0%}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/table&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\r\n&lt;\/div&gt;\r\n\r\n{%\u00a0endblock\u00a0%}<\/pre>\n<p>If the user is not authenticated (Job Seeker): Then it passes all the company objects to Jobseeker.html which displays company details in a tabular form with an option to apply to that organization.<\/p>\n<p><strong>Jobseeker.html<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">{%\u00a0extends\u00a0'main.html'\u00a0%}\r\n{%\u00a0load\u00a0static%}\r\n\r\n{%\u00a0block\u00a0content\u00a0%}\r\n&lt;div\u00a0class=\"container\u00a0card\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;h1&gt;Available\u00a0openings&lt;\/h1&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;div\u00a0class=\"card-body\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;table\u00a0class=\"table\u00a0table-hover\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;tr&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;th&gt;Name&lt;\/th&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;th&gt;Position&lt;\/th&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;th&gt;Description&lt;\/th&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;th&gt;Salary&lt;\/th&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;th&gt;Experience&lt;\/th&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;th&gt;Location&lt;\/th&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;th&gt;Join&lt;\/th&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/tr&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{%\u00a0for\u00a0c\u00a0in\u00a0companies\u00a0%}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;tr&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;td&gt;{{c.name}}&lt;\/td&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;td&gt;{{c.position}}&lt;\/td&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;td&gt;{{c.description}}&lt;\/td&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;td&gt;{{c.salary}}&lt;\/td&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;td&gt;{{c.experience}}&lt;\/td&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;td&gt;{{c.Location}}&lt;\/td&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;td&gt;&lt;a\u00a0href=\"{%\u00a0url\u00a0'apply'\u00a0%}\"\u00a0class=\"btn\u00a0btn-info\u00a0btn-sm\"\u00a0type=\"submit\"&gt;Apply&lt;\/a&gt;&lt;\/td&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/tr&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{%\u00a0endfor\u00a0%}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/table&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\r\n&lt;\/div&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{%\u00a0for\u00a0c\u00a0in\u00a0companies\u00a0%}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{{c.name}}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{%\u00a0endfor\u00a0%}\r\n{%\u00a0endblock\u00a0%}\r\n<\/pre>\n<p>Then there are logout, login, register functions that use Django&#8217;s inbuilt UserCreationForm, login, logout function.<\/p>\n<p>Last function is Apply Page which enables Job seekers to apply for a job. It uses ApplyForm which we have already discussed in forms.py.<\/p>\n<p><strong>Apply.html<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">{%\u00a0extends\u00a0'main.html'\u00a0%}\r\n{%\u00a0load\u00a0static%}\r\n\r\n{%\u00a0block\u00a0content\u00a0%}\r\n&lt;head&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;style&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.box{\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0border:5px\u00a0solid\u00a0black;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\u00a0\u00a0\u00a0\u00a0&lt;\/style&gt;\r\n&lt;\/head&gt;\r\n&lt;div\u00a0class=\"\u00a0box\u00a0jumbotron\u00a0container\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;form\u00a0action=\"\"\u00a0method=\"POST\"\u00a0enctype=\"multipart\/form-data\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{%\u00a0csrf_token\u00a0%}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{{form.as_p}}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input\u00a0type=\"submit\"\u00a0class=\"btn\u00a0btn-success\u00a0btn-sm\"\u00a0value=\"submit\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;\/form&gt;\r\n&lt;\/div&gt;\r\n{%\u00a0endblock\u00a0%}\r\n<\/pre>\n<h3>7. templates:<\/h3>\n<p>Make a \u2018templates\u2019 folder in the project folder to place all the frontend stuffs<\/p>\n<p><strong>login.html<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">{%\u00a0extends\u00a0'main.html'\u00a0%}\r\n{%\u00a0load\u00a0static%}\r\n\r\n{%\u00a0block\u00a0content\u00a0%}\r\n&lt;head&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;style&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.maindiv{\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0border:1px\u00a0solid\u00a0black;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\u00a0\u00a0\u00a0\u00a0&lt;\/style&gt;\r\n&lt;\/head&gt;\r\n&lt;div\u00a0class=\"maindiv\u00a0jumbotron\u00a0container\u00a0\"&gt;\r\n\r\n\u00a0\u00a0\u00a0\u00a0&lt;form\u00a0method=\"POST\"\u00a0action=\"\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{%\u00a0csrf_token\u00a0%}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;p&gt;&lt;input\u00a0type=\"text\"\u00a0name=\"username\"\u00a0placeholder=\"Username...\"&gt;&lt;\/p&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;p&gt;&lt;input\u00a0type=\"password\"\u00a0name=\"password\"\u00a0placeholder=\"Password...\"\u00a0&gt;&lt;\/p&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input\u00a0class=\"btn\u00a0btn-success\"\u00a0type=\"submit\"\u00a0value=\"Login\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;p&gt;Do\u00a0not\u00a0have\u00a0an\u00a0account&lt;a\u00a0href='{%\u00a0url\u00a0\"register\"\u00a0%}'&gt;Register&lt;\/a&gt;&lt;\/p&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;\/form&gt;\r\n\r\n&lt;\/div&gt;\r\n{%\u00a0endblock\u00a0%}<\/pre>\n<p><strong>main.html<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">&lt;!DOCTYPE\u00a0html&gt;\r\n&lt;html\u00a0lang=\"en\"&gt;\r\n&lt;head&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;meta\u00a0charset=\"UTF-8\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;meta\u00a0name=\"viewport\"\u00a0content=\"width=device-width,\u00a0initial-scale=1.0\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;link\u00a0rel=\"stylesheet\"\u00a0href=\"https:\/\/stackpath.bootstrapcdn.com\/bootstrap\/4.5.0\/css\/bootstrap.min.css\"\u00a0integrity=\"sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk\"\u00a0crossorigin=\"anonymous\"0&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;title&gt;DataFlair Job\u00a0portal\u00a0Project&lt;\/title&gt;\r\n&lt;\/head&gt;\r\n&lt;body&gt;\r\n\u00a0\u00a0\u00a0\u00a0{%\u00a0include\u00a0'navbar.html'\u00a0%}\r\n\u00a0\u00a0\u00a0\u00a0&lt;br&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;br&gt;\r\n\u00a0\u00a0\u00a0\u00a0{%block\u00a0content%}\r\n\u00a0\u00a0\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0{%\u00a0endblock\u00a0%}\r\n&lt;\/body&gt;\r\n&lt;\/html&gt;\r\n\r\nnavbar.html\r\n\r\n&lt;head&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;style&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.user{\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0color:white;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0text-decoration:\u00a0none;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\u00a0\u00a0\u00a0\u00a0&lt;\/style&gt;\r\n\u00a0\u00a0&lt;\/head&gt;\r\n\u00a0\u00a0&lt;nav\u00a0class=\"navbar\u00a0navbar-expand-lg\u00a0navbar-dark\u00a0bg-dark\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;a\u00a0class=\"navbar-brand\"\u00a0href=\"{%\u00a0url\u00a0'home'\u00a0%}\"&gt;HOME&lt;\/a&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;button\u00a0class=\"navbar-toggler\"\u00a0type=\"button\"\u00a0data-toggle=\"collapse\"\u00a0data-target=\"#navbarSupportedContent\"\u00a0aria-controls=\"navbarSupportedContent\"\u00a0aria-expanded=\"false\"\u00a0aria-label=\"Toggle\u00a0navigation\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;span\u00a0class=\"navbar-toggler-icon\"&gt;&lt;\/span&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/button&gt;\r\n\u00a0\u00a0\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div\u00a0class=\"collapse\u00a0navbar-collapse\"\u00a0id=\"navbarSupportedContent\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{%\u00a0if\u00a0request.user.is_authenticated\u00a0%}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;span\u00a0class=\"user\"&gt;Hello,\u00a0{{request.user}}\u00a0\u00a0&amp;nbsp;&lt;\/span&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;span\u00a0&gt;&lt;a\u00a0\u00a0class=\"user\u00a0btn\u00a0btn-info\"\u00a0href\u00a0=\"{%\u00a0url\u00a0'logout'\u00a0%}\"&gt;\u00a0Logout&lt;\/a&gt;&lt;\/span&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{%\u00a0else\u00a0%}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;span\u00a0&gt;&lt;a\u00a0class=\"user\"\u00a0href=\"{%\u00a0url\u00a0'login'\u00a0%}\"&gt;Login&lt;\/a&gt;&lt;\/span&gt;&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;span\u00a0&gt;&lt;a\u00a0class=\"user\"\u00a0href=\"{%\u00a0url\u00a0'register'\u00a0%}\"&gt;Register&lt;\/a&gt;&lt;\/span&gt;&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{%\u00a0endif\u00a0\u00a0%}\r\n\u00a0\u00a0\u00a0\u00a0&lt;\/nav&gt;<\/pre>\n<p><strong>register.html<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">{%\u00a0extends\u00a0'main.html'\u00a0%}\r\n{%\u00a0load\u00a0static%}\r\n\r\n{%\u00a0block\u00a0content\u00a0%}\r\n&lt;head&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;style&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.maindiv{\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0border:1px\u00a0solid\u00a0black;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\u00a0\u00a0\u00a0\u00a0&lt;\/style&gt;\r\n&lt;\/head&gt;\r\n&lt;div\u00a0class=\"maindiv\u00a0jumbotron\u00a0container\"&gt;\r\n\r\n\u00a0\u00a0\u00a0\u00a0&lt;form\u00a0method=\"POST\"\u00a0\u00a0action=\"\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{%\u00a0csrf_token\u00a0%}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{{form.as_p}}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input\u00a0class=\"btn\u00a0btn-success\u00a0btn-lg\"\u00a0type=\"submit\"\u00a0value=\"Register\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;p&gt;Already\u00a0have\u00a0an\u00a0account&lt;a\u00a0href='{%\u00a0url\u00a0\"login\"\u00a0%}'&gt;Login&lt;\/a&gt;&lt;\/p&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;\/form&gt;\r\n\r\n&lt;\/div&gt;\r\n{%\u00a0endblock\u00a0%}\r\n<\/pre>\n<h3>Job Portal Output<\/h3>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/hr-home-page.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-82162\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/hr-home-page.png\" alt=\"hr home page\" width=\"1366\" height=\"728\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/hr-home-page.png 1366w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/hr-home-page-300x160.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/hr-home-page-1024x546.png 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/hr-home-page-150x80.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/hr-home-page-768x409.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/hr-home-page-520x277.png 520w\" sizes=\"auto, (max-width: 1366px) 100vw, 1366px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/job-seeker-home-page.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-82163\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/job-seeker-home-page.png\" alt=\"job seeker home page\" width=\"1366\" height=\"728\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/job-seeker-home-page.png 1366w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/job-seeker-home-page-300x160.png 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/job-seeker-home-page-1024x546.png 1024w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/job-seeker-home-page-150x80.png 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/job-seeker-home-page-768x409.png 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/job-seeker-home-page-520x277.png 520w\" sizes=\"auto, (max-width: 1366px) 100vw, 1366px\" \/><\/a><\/p>\n<h2>Summary<\/h2>\n<p>Thus, we have successfully completed the python django project, this is just a start to master python &amp; django, keep working on projects, and gain expertise.<\/p>\n<p>Happy Coding!<span hidden class=\"__iawmlf-post-loop-links\" data-iawmlf-links=\"[{&quot;id&quot;:2508,&quot;href&quot;:&quot;https:\\\/\\\/drive.google.com\\\/file\\\/d\\\/16z7pDltJU67wakV4vfM5f0kVcbJw8zI0\\\/view?usp=drive_link&quot;,&quot;archived_href&quot;:&quot;http:\\\/\\\/web-wp.archive.org\\\/web\\\/20260601063133\\\/https:\\\/\\\/drive.google.com\\\/file\\\/d\\\/16z7pDltJU67wakV4vfM5f0kVcbJw8zI0\\\/view?usp=drive_link&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2026-06-01 14:57:52&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-06-05 06:03:20&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-06-08 07:19:01&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-06-11 16:17:53&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-06-14 17:27:21&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-06-17 22:20:48&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-06-21 14:37:40&quot;,&quot;http_code&quot;:200}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-06-21 14:37:40&quot;,&quot;http_code&quot;:200},&quot;process&quot;:&quot;done&quot;}]\"><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Work on an intermediate level python django project &#8211; Online Job Portal in Python The objective of this python project is to develop an online portal where recruiters can post job requirements, they can&#46;&#46;&#46;<\/p>\n","protected":false},"author":10,"featured_media":82164,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[46],"tags":[19201,23262,21082],"class_list":["post-82082","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-python","tag-django-project","tag-online-job-portal","tag-python-project"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Online Job Portal - Python Project with Source Code - DataFlair<\/title>\n<meta name=\"description\" content=\"Online Job Portal in Python &amp; Django - Develop a job portal project where recruiter can post job requirements and job seeker can apply in suitable openings\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/data-flair.training\/blogs\/online-job-portal-python-project\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Online Job Portal - Python Project with Source Code - DataFlair\" \/>\n<meta property=\"og:description\" content=\"Online Job Portal in Python &amp; Django - Develop a job portal project where recruiter can post job requirements and job seeker can apply in suitable openings\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/online-job-portal-python-project\/\" \/>\n<meta property=\"og:site_name\" content=\"DataFlair\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DataFlairWS\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-09-12T15:46:13+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-01T06:31:03+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/online-job-portal-python.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=\"DataFlair Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:site\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DataFlair 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 Job Portal - Python Project with Source Code - DataFlair","description":"Online Job Portal in Python & Django - Develop a job portal project where recruiter can post job requirements and job seeker can apply in suitable openings","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:\/\/data-flair.training\/blogs\/online-job-portal-python-project\/","og_locale":"en_US","og_type":"article","og_title":"Online Job Portal - Python Project with Source Code - DataFlair","og_description":"Online Job Portal in Python & Django - Develop a job portal project where recruiter can post job requirements and job seeker can apply in suitable openings","og_url":"https:\/\/data-flair.training\/blogs\/online-job-portal-python-project\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2020-09-12T15:46:13+00:00","article_modified_time":"2026-06-01T06:31:03+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/online-job-portal-python.jpg","type":"image\/jpeg"}],"author":"DataFlair Team","twitter_card":"summary_large_image","twitter_creator":"@DataFlairWS","twitter_site":"@DataFlairWS","twitter_misc":{"Written by":"DataFlair Team","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/online-job-portal-python-project\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/online-job-portal-python-project\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/a90b082e16aa38d207212d22b0581f33"},"headline":"Online Job Portal &#8211; Python Project with Source Code","datePublished":"2020-09-12T15:46:13+00:00","dateModified":"2026-06-01T06:31:03+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/online-job-portal-python-project\/"},"wordCount":590,"commentCount":20,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/online-job-portal-python-project\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/online-job-portal-python.jpg","keywords":["Django Project","online job portal","Python project"],"articleSection":["Python Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/online-job-portal-python-project\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/online-job-portal-python-project\/","url":"https:\/\/data-flair.training\/blogs\/online-job-portal-python-project\/","name":"Online Job Portal - Python Project with Source Code - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/online-job-portal-python-project\/#primaryimage"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/online-job-portal-python-project\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/online-job-portal-python.jpg","datePublished":"2020-09-12T15:46:13+00:00","dateModified":"2026-06-01T06:31:03+00:00","description":"Online Job Portal in Python & Django - Develop a job portal project where recruiter can post job requirements and job seeker can apply in suitable openings","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/online-job-portal-python-project\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/online-job-portal-python-project\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/online-job-portal-python-project\/#primaryimage","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/online-job-portal-python.jpg","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/09\/online-job-portal-python.jpg","width":1200,"height":628,"caption":"online job portal python"},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/online-job-portal-python-project\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"Python Tutorials","item":"https:\/\/data-flair.training\/blogs\/category\/python\/"},{"@type":"ListItem","position":3,"name":"Online Job Portal &#8211; Python Project with Source Code"}]},{"@type":"WebSite","@id":"https:\/\/data-flair.training\/blogs\/#website","url":"https:\/\/data-flair.training\/blogs\/","name":"DataFlair","description":"Learn Today. Lead Tomorrow.","publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/data-flair.training\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/data-flair.training\/blogs\/#organization","name":"DataFlair","url":"https:\/\/data-flair.training\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","width":106,"height":48,"caption":"DataFlair"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DataFlairWS\/","https:\/\/x.com\/DataFlairWS","https:\/\/www.linkedin.com\/company\/dataflair-web-services-pvt-ltd\/","https:\/\/www.youtube.com\/user\/DataFlairWS"]},{"@type":"Person","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/a90b082e16aa38d207212d22b0581f33","name":"DataFlair Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/dd6de0d647a0185cd6faf264e4ba860b0d85d08d7070766f9cd41bea5bb0b227?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/dd6de0d647a0185cd6faf264e4ba860b0d85d08d7070766f9cd41bea5bb0b227?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/dd6de0d647a0185cd6faf264e4ba860b0d85d08d7070766f9cd41bea5bb0b227?s=96&d=mm&r=g","caption":"DataFlair Team"},"description":"The DataFlair Team is passionate about delivering top-notch tutorials and resources on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. With expertise in the tech industry, we simplify complex topics to help learners excel. Stay updated with our latest insights.","url":"https:\/\/data-flair.training\/blogs\/author\/dfadteam1\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/82082","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=82082"}],"version-history":[{"count":6,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/82082\/revisions"}],"predecessor-version":[{"id":148577,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/82082\/revisions\/148577"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media\/82164"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=82082"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=82082"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=82082"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}