DEV Community

Cover image for Implementing PostgreSQL in Django Project
Joseph Mania
Joseph Mania

Posted on • Originally published at techmaniac649449135.wordpress.com

Implementing PostgreSQL in Django Project

Database management possibilities are plentiful with Django, a high-level Python web framework. PostgreSQL, however, is the database of choice for Django.

Why PostgreSQL?

PostgreSQL is a popular open-source relational database management system that is ideal for web development, particularly in Django applications. It offers stability and reliability, scalability to handle large amounts of data, advanced data types and modeling capabilities, and great support for SQL.

PostgreSQL is also an economical option as it is open-source and free to use, with a large and active developer community that continuously improves the database. PostgreSQL’s sophisticated features, such as transactions, referential integrity, and data type expansion, make it a top choice for Django applications that require complex database operations. It is a flexible, cost-effective, and dependable solution for Django database needs.

Implementing PostgreSQL with Django

Step 1: Install PostgreSQL

Installing the PostgreSQL server is the first step in integrating PostgreSQL with Django. This is possible on various operating systems, including Windows, macOS, and Linux. In this illustration, we’ll set up PostgreSQL on Ubuntu.

Open the terminal, and then enter the following command to install PostgreSQL on Ubuntu:

sudo apt-get update

sudo apt-get install postgresql postgresql-contrib
Enter fullscreen mode Exit fullscreen mode

Step 2: Create a PostgreSQL Database

Once you have installed PostgreSQL, the next step is to create a database. This can be done using the “created” command. In this example, we will create a database called “django_db”.

sudo -u postgres createdb django_db

Enter fullscreen mode Exit fullscreen mode

Step 3: Install the Django and Psycopg2 Libraries

The Python package Psycopg2 is used to communicate with PostgreSQL databases.

Run the following command in the terminal to install Django and Psycopg2:

pip install django psycopg2

Enter fullscreen mode Exit fullscreen mode

Step 4: Create a Django Project

The next step is to create a Django project. This can be done using the django-admin command. In this example, we will create a Django project called “django_project”.

django-admin startproject django_project

Enter fullscreen mode Exit fullscreen mode

Step 5: Create a Django Application

Once you have created a Django project, the next step is to create a Django application. This can be done using the python manage.py startapp command. In this example, we will create a Django application called “django_app”.

python manage.py startapp django_app

Enter fullscreen mode Exit fullscreen mode

Step 6: Configure the Settings.py File

The settings.py file has to be configured next. The database settings for the Django project are specified in this file.

Open the settings.py file and add the following code to configure it:

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.postgresql',

'NAME': 'django_db',

'USER': 'postgres',

'PASSWORD': 'postgres',

'HOST': 'localhost',

'PORT': '5432',

}

}
Enter fullscreen mode Exit fullscreen mode

Step 7: Migrate the Database

The next step is to migrate the database. This can be done using the python manage.py migrate command.

python manage.py migrate
Enter fullscreen mode Exit fullscreen mode

Step 8: Create a Model

Making a model is the next stage. This is accomplished by creating a class that symbolizes a database table. For this illustration, we’ll make a model called “Book.”

Open the models.py file in the Django application and add the following code to create a model:

from django.db import models

class Book(models.Model):

title = models.CharField(max_length=100)

author = models.CharField(max_length=100)

pub_date = models.DateField
Enter fullscreen mode Exit fullscreen mode

Congratulations, you have made it. Run migration, and check your database.

Top comments (0)