Support
Please support this website. Visit the Amazon using this affiliate link. There won't be any difference in your purchage, we will get some commission for every purchase you make.
Advertise with us
How to host Django app on Pythonanywhere for Free

So you developed a course project which you need to host somewhere so that everyone can access it. Or you are working on some personal project and want to host it so that test users can test it. What do you do in such a scenario? You look for the best hosting service provider. Right?

So what is the best option to host your Django app?

We tried multiple hosting providers and found out that best choice for a Django app is Pythonanywhere.com. why? Find out below.


Features of Pythonanywhere:

 - Only Python Django focused hosting service provider.

 - Monthly payment option. $5 per month only.

 - $10 off on yearly payment.

 - IPython notebook to write code online.

 - Free SSL certificate installation.

 - APIs

 - Scheduled Tasks

 - Best customer care service. Immediate response on the forum or via email.


Keeping the above reasons in mind, we decided to help you host your first app on the cloud.



Steps to host the django app on Pythonanywhere:

Once you are done with development and testing on local, commit your code to Github. Pushing code to Github has two benefits. Your code remains safe in case your local machine got corrupted and Transferring code from local to pythonanywhere is easy. Also, version management is an added benefit.

Create a free account on pythonanywhere.com. Login to your account.

In the dashboard, click on the web tab. Now add a new web app.


hosting django app on pythonanywhere server


Free account does not support custom domain names. So your app will go live on your-username.pythonanywhere.com. You need to upgrade to a paid account for custom domain names.

Select the web framework on the next screen. If you have already developed the app choose 'Manual Configuration'. If you want to develop the app on the server itself, choose 'Django'.


hosting django app on pythonanywhere server

Since we assumed that you have already developed the app and pushed the code to Github or Bitbucket, we selected 'Manual Configuration'.

Select the python version on the next screen. The final screen will inform you that you need to set a wsgi file and virtual environment yourself. Proceed. Your web app is ready. Almost.

hosting django app on pythonanywhere server

   

Now go to the console tab and start a bash console.

Git clone the repository you pushed on Github/Bitbucket. You can use my project repository.  We will use references from this repository in the rest of the article.

$ git clone https://github.com/anuragrana/hellow-world-django.git

This will create the hellow-world-django  directory with project files in your current working directory.

In our article Building Django App in less than 5 minutes, we discussed how to install and create a virtual environment. Please follow the same steps here to create a virtual environment with Python 3. Let's say the name of the virtual environment created is virtenv.

Install Django in virtual environment. pip install django.

Now go to the files tab and edit the settings.py file. Set debug to False  and Allowed host  to ["*"] . These changes will not show debug information in the browser if something goes wrong. Allowed hosts setting will make sure which hosts can access the code. Setting it to * is not safe, but for now, it will do the task. Make sure to change it to actual hostname on the production environment.

DEBUG = False
ALLOWED_HOSTS = ["*"]  # or ALLOWED_HOSTS = ["code.pythonanywhere.com"] - recommended.


Now go to web tab and Fill source code directory, /home/code108/hellow-world-django/ in our case. Fill virtual environment directory, /home/code108/virtenv/ in our case. Save the settings.


hosting django app on pythonanywhere server

   

You can define static and media directory and URLs but they are not required in our project.

You can also set the username and password on your app so that not everyone can access the website.


hosting django app on pythonanywhere server

 

Edit the WSGI configuration file. Comment the line in ++++++ Hello World +++++  section. Go to +++++++ DJANGO +++++  section and un-comment the lines so that code looks like as below.

# +++++++++++ DJANGO +++++++++++
# To use your own django app use code like this:
import os
import sys
#
## assuming your django settings file is at '/home/code108/mysite/mysite/settings.py'
## and your manage.py is is at '/home/code108/mysite/manage.py'
path = '/home/code108/hellow-world-django'
if path not in sys.path:
    sys.path.append(path)
#
os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings'
#
## then, for django >=1.5:
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
## or, for older django <=1.4
#import django.core.handlers.wsgi
#application = django.core.handlers.wsgi.WSGIHandler()
 

Save WSGI settings file and reload the web app on the web tab.

Open the link in new tab. Since we have a helloworld  app inside our project, URL should be <site-address>/helloworld/. In our case it is code108.pythonanywhere.com/helloworld . You can see the template you created on this URL.


That is how you host on pythonanywhere server.

For paid accounts process it a bit different. In a paid account, you are given CNAME which you need to update with your domain name service provider.


Refer this sort video on how to host hello world Django app on pythonanywhere free account. 



If you feel hosting on pythonanywhere.com is smooth, create a free account today and host your first app and show it to your friends.

Feel free to comment for any query.

 

3 comments on 'How To Host Django App On Pythonanywhere For Free'
Login to comment

Omonbude Emmanuel Oct. 30, 2018, 5:47 p.m.
Thanks a lotI really appreciate
Admin Nov. 12, 2018, 7:27 a.m.
Glad we were helpful.
Mitesh Sharma Nov. 3, 2019, 12:11 p.m.
Helpful for beginners. Django Tutorials always informative.

Related Articles:
How to host Django application on DigitalOcean server using Gunicorn, Supervisor, and NGINX
hosting Django application on DigitalOcean Server with custom Domain. Using WSGI server to host the Django application. Hosting Django application with Gunicorn, Supervisor, NGINX. Service static and media files of Django application using NGINX. Using Godaddy Domain to server traffic of Django application. Production deployment of Django applications....
Using a custom domain for Django app hosted on AWS EC2
Using a custom domain for Django app hosted on AWS EC2, GoDaddy DNS with EC2 instance, Django App on EC2 with GoDaddy DNS, Using domain name in Nginx and EC2, Elastic IP and DNS on EC2...
Hosting Django app for free on Amazon (AWS) EC2 with Gunicorn and Nginx
Step by step guide on hosting Django application on AWS ec2 instance, How to host the Django app on AWS ec2 instance from scratch, Django on EC2, Django app hosting on AWS, Free hosting of Django App...
Python Tip 1: Accessing localhost Django webserver over the Internet
how to generate public URL to expose your local Django webserver over the Internet. How to let everyone access your Django project running on localhost....
DigitalOcean Referral Badge

© 2022-2023 Python Circle   Contact   Sponsor   Archive   Sitemap