Until now we have used the SQLite database for all of our tutorials. Lets see how to configure a different database in our django projects.
Pre-requisite – Postgres database installed on your machine.
Git reference project – https://github.com/letsblogcontent/Python/tree/master/django_postgres
Step 1 – If not already installed, install django
pip install django
Step 2 – Create a new django project “django-postgres”
django-admin startproject django-postgres
Step 3 – Navigate to project directory “django-postgres” to Install django restframework
cd django-postgres
pip install djangorestframework
Step 4 – Install psycopg2 – Adapter for postgres
pip install psycopg2
Step 5 – now lets create a new app
python manage.py startapp models
Step 6 – Add the app to the installed apps of your project in the file settings.py. You will find it under “<root directory>/django-postgres”
'models.apps.ModelsConfig'

Step 7 – Update the databases section in the settings.py file of the project to have postgres database details. Name represents database name and other parameters are self explanatory. Update all the details.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'Test2',
'USER': 'user1',
'PASSWORD': 'user1',
'HOST': 'localhost',
'PORT': '',
}
}
Step 8 – Lets create a model in the models app so that we can test the database configuration. In the models app directory update below files. Create files where they are not already present.
<root_dir>/django_postgres/models/models.py
from django.db import models
class Company(models.Model):
name = models.CharField(max_length=50)
address = models.CharField(max_length=100)
email = models.CharField(max_length=50)
Here we have create a simple model class named Company
Create a new file serializers.py file in the models app
<root_dir>/django_postgres/models/serializers.py
from rest_framework import serializers
from .models import Company
class CompanySerializer(serializers.ModelSerializer):
class Meta:
model = Company
fields = ['id', 'name', 'address', 'email']
in the views.py file of models app, add following content. Here we are using viewsets to configure our views for company
<root_dir>/django_postgres/models/views.py
from rest_framework import generics, viewsets
from .models import Company
from .serializers import CompanySerializer
class CompanyViewSet(viewsets.ModelViewSet):
queryset = Company.objects.all()
serializer_class = CompanySerializer
Create/Update urls.py file to create url mapping of company views
<root_dir>/django_postgres/models/urls.py
from django.urls import path, include
from . import views
from rest_framework.routers import DefaultRouter
router = DefaultRouter()
router.register('company', views.CompanyViewSet)
urlpatterns = [
path('', include(router.urls))
]
update the urls.py file of the project django_postgres. Add a new entry as below in the urlpatterns section
path('api/', include('models.urls')),

Step 9 – We are pretty much done and now is the time to test our project. I have updated the project in the git url mentioned at the start of the page. If something is not working, please do write in comments or try and download the project and execute.
Execute “makemigrations” and “migrate” command as below
python manage.py makemigrations
python manage.py migrate
Now run the server with below command
python manage.py runserver
Step 10 – Now on your browser execute http://localhost:8000/api/company

Now try and add some new elements and see the results. You can also go to postgres database and you should find models_company table created with the entries you have created.