Table of Contents
- Introduction
- Prerequisites
- Setup
- Creating a Django Project
- Creating a Django App
- Creating the Job Board Model
- Setting Up the Database
- Creating Views
- Creating Templates
- Creating URL Patterns
- Running the Server
- Conclusion
Introduction
In this tutorial, we will learn how to build a job board website using Python and Django. By the end of this tutorial, you will have a fully-functional job board website where users can post job listings and search for available jobs.
Prerequisites
Before starting this tutorial, you should have a basic understanding of the Python programming language. Familiarity with web development concepts, HTML, CSS, and databases will also be helpful.
Setup
To get started, make sure you have Python and Django installed on your system. You can install Python from the official website, and Django can be installed using pip, the package installer for Python.
bash
pip install django
Creating a Django Project
First, let’s create a new Django project. Open your terminal or command prompt, navigate to the directory where you want to create your project, and run the following command:
bash
django-admin startproject jobboard
This will create a new directory called “jobboard” with the basic project structure.
Creating a Django App
Inside the project directory, let’s create a new Django app. Run the following command:
bash
python manage.py startapp job
This will create a new directory called “job” with the app structure.
Creating the Job Board Model
Open the models.py
file inside the job
app and define the Job model.
```python
from django.db import models
class Job(models.Model):
title = models.CharField(max_length=100)
company = models.CharField(max_length=100)
location = models.CharField(max_length=100)
description = models.TextField()
posted_at = models.DateTimeField(auto_now_add=True)
``` Here, we define the fields of the Job model such as title, company, location, description, and posted_at.
Setting Up the Database
Before we can use the Job model, we need to create the corresponding database table. To do this, we will run the following commands:
bash
python manage.py makemigrations
python manage.py migrate
These commands will create the necessary migration files and apply them to the database.
Creating Views
Next, let’s create the views for our job board. In the views.py
file inside the job
app, add the following code:
```python
from django.shortcuts import render
from .models import Job
def job_list(request):
jobs = Job.objects.all()
return render(request, 'job/job_list.html', {'jobs': jobs})
``` Here, we import the Job model and define a job_list view that retrieves all the jobs from the database and passes them to the `job_list.html` template.
Creating Templates
Inside the job
app directory, let’s create a templates
directory. Inside the templates
directory, create another directory called job
. Inside the job
directory, create a file called job_list.html
. Add the following code to the job_list.html
file:
```html
{% for job in jobs %}
<h2>{{ job.title }}</h2>
<p>{{ job.company }}</p>
<p>{{ job.location }}</p>
<p>{{ job.description }}</p>
<hr>
{% empty %}
<p>No jobs available.</p>
{% endfor %}
``` This template iterates over the jobs passed from the view and displays the job details such as title, company, location, and description.
Creating URL Patterns
To make our views accessible through URLs, we need to define URL patterns. Open the urls.py
file inside the project directory and add the following code:
```python
from django.urls import path
from job.views import job_list
urlpatterns = [
path('', job_list, name='job_list'),
]
``` This code imports the `job_list` view and maps it to the root URL.
Running the Server
Finally, let’s start the Django development server and see our job board website in action. Run the following command:
bash
python manage.py runserver
Open your web browser and visit http://127.0.0.1:8000/
. You should see the list of jobs if there are any available.
Conclusion
Congratulations! You have successfully built a job board website using Python and Django. In this tutorial, we learned how to create a Django project, define a model, set up a database, create views, templates, and URL patterns. You can now extend this project by adding user registration, authentication, and more advanced features. Happy coding!