In this article we will show step-by-step how to

deploy

a

Django

application on the

PythonAnywhere

. PythonAnywhere is a service, like Heroku, Digital Ocean, Scala hosting, Django Europe... that gives us access to a server where we can host our Django application. They have a free offer that allows you to create a web application with limited functionality.

1 - Create an account on PythonAnywhere

The first step is to create an account on PythonAnywhere by going to the registration page. For basic needs you can create a free account which will allow you to create a web application.

The free account has some limitations

        - You can only create one application. 

        - You must click a button every 3 months in the site interface to keep the site online. 

        - You cannot use a PostgreSQL database.

2 - Create your project on PythonAnywhere

Once your account is created, you can create a web application by going to the Web tab. 

 

Click on

"Add a new web app"

to create an application.

 

Click "Next" and choose the manual configuration

.

Then choose the version of Python you want to use for your project: 

..


Your application is now created

 

You can access your temporary website at the address indicated (*). You also notice the famous button (**) on which you will have to click at least once every 3 months with a free account so that your site remains active!

3 - Necessary settings for your django project

3.1 - The settings.py file

In the

settings.py

file add the address of your pythonanywhere application to the allowed host list:

ALLOWED_HOSTS = ['youderf.pythonanywhere.com']

3.2 - The requirements.txt file

The requirements.txt file must be created locally before submitting the project to Github. To create one, execute the command:

pip freeze > requirements.txt

4 - Create an account on Github

    4.1 - To start, create a Github account 

    4.2 - Deploy your project on Github 

    4.3 - Under the code tab copy the clone address of the project: https://github.com/youderf/ManageStudent22.git 

5 - Clone the github repository to your pythonanywhere space

We will now clone the Github repository to our PythonAnywhere server. Go to the Consoles tab and click on Bash to open a terminal on your server and type:

pwd 

and then the address of your git repository:

git clone https://github.com/youderf/ManageStudent22.git

6 - Create a virtualenv and install django for your app

To create virtualenv for your application, type in the terminal:

mkvirtualenv --python=python3.9 ManageStudent22-venv

and then install django by typing in the same bash console:

pip install django

7 - Configure youre django app

We are now in the final phase, we just have to configure our app. In the code section: you must specify the location of the system files of your project then put:

/home/youderf/ManageStudent22

In the WSGI configuration file delete all content of this file and replace it by:

import os
import sys

# add your project directory to the sys.path
project_home = '/home/youderf/ManageStudent22'
if project_home not in sys.path:
sys.path.insert(0, project_home)

# set environment variable to tell django where your settings.py is
os.environ['DJANGO_SETTINGS_MODULE'] = 'ManageStudent22.settings'


# serve django via WSGI
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

Remark

youderf

must be relaced by

your_username

and

ManageStudent22

must be replaced by the

folder name of your django project

And finally int the section virtualenv you must indicate the path to your virtualenv:

home/youderf/.virtualenvs/ManageStudent22-venv

Now if everything is correct, you can access your web application via the address provided by pythonanywhere: http://youderf.pythonanywhere.com/

 

 

Younes Derfoufi
my-courses.net

Leave a Reply