How to Install Django on CentOS 7

Updated on November 21, 2023
How to Install Django on CentOS 7 header image

Django is a popular Python framework for writing web applications. With Django, you can build applications faster, without reinventing the wheel.

If you want to install Django on a CentOS 7 machine, there are several methods from which you can choose. However, the most flexible choice is to install Django with pip in a virtual environment created by virtualenv. This guide demonstrates how to install Django using pip and virtualenv.

Prerequisites

To get started, you will need to:

  • Deploy a Vultr CentOS 7 server instance.
  • Log into this server over SSH, using a non-root user with sudo privileges.

Step 1: Update the system

sudo yum install epel-release
sudo yum update -y && sudo reboot

After the reboot finishes, log in with the same sudo user.

Step 2: Install pip and necessary dependencies

Use the commands below to install the latest version of pip:

sudo yum install python-devel python-setuptools python-pip
sudo pip install --upgrade pip

Step 3: Install virtualenv

You can use pip to install virtualenv:

sudo pip install virtualenv

Step 4: Create a virtual environment using virtualenv

Say that you want to create a dedicated virtual environment to contain the Django framework:

cd ~
virtualenv djangoenv

The command above will create the directory ~/djangoenv that contains your virtual environment.

Step 5: Install Django in the virtual environment

First, activate the virtual environment:

source ~/djangoenv/bin/activate

The prompt of your SSH terminal will resemble the following:

(djangoenv) [user@hostname ~]$

This means that you have stepped into the virtual environment "djangoenv". Install Django in the virtual environment:

pip install django

Be aware that you are installing Django locally, so you don't need to use the sudo command.

Step 6: Create a sample Django project

Now that the Django framework has been installed, you can to give it a test drive by creating a sample project.

cd ~
django-admin startproject prj1

The command above will create a directory prj1 in your working directory ~, and store all necessary files within.

Run the commands below in sequence to get your application started. Follow the instructions on screen to provide the superuser's credentials.

cd prj1/
python manage.py migrate
python manage.py createsuperuser
python manage.py runserver 0.0.0.0:8000

In order to allow access to port 8000, you need to modify firewall rules in a new SSH connection:

sudo firewall-cmd --zone=public --permanent --add-port=8000/tcp
sudo firewall-cmd --reload

Use a web browser to visit your application:

http://<your-Vultr-server-IP>:8000
http://<your-Vultr-server-IP>:8000/admin

Upon success, you will see a Django page with the following output:

It worked!
Congratulations on your first Django-powered page.

Having finished the test, press Ctrl + C to quit your application.

Finally, use the "deactivate" command to leave your virtual environment:

deactivate

The prompt of your SSH terminal will now return to the ordinary status:

[user@hostname prj1]$