Django Hello World Web Application (mac-linux)
This tutorial describes how to host a Django-based web site on Windows Azure using a Linux virtual machine. This tutorial assumes you have no prior experience using Windows Azure. Upon completing this guide, you will have a Django-based application up and running in the cloud.
You will learn how to:
- Setup a Windows Azure virtual machine to host Django. While this tutorial explains how to accomplish this under Linux, the same could also be done with a Windows Server VM hosted in Windows Azure.
- Create a new Django application from Linux.
By following this tutorial, you will build a simple Hello World web application. The application will be hosted in a Windows Azure virtual machine.
A screenshot of the completed application is below:
Creating and configuring a Windows Azure virtual machine to host Django
- Follow the instructions given here to create a Windows Azure virtual machine of the Ubuntu Server 12.04 distribution.
Note: you only need to create the virtual machine. Stop at the section titled How to log on to the virtual machine after you create it.
- Instruct Windows Azure to direct port 80 traffic from the web to port 80 on the virtual machine:
- Navigate to your newly created virtual machine in the Windows Azure Portal and click the ENDPOINTS tab.
- Click ADD ENDPOINT button at the bottom of the screen.
- Open up the TCP protocol's PUBLIC PORT 80 as PRIVATE PORT 80.
Setting up the development environment
Note: If you need to install Python or would like to use the Client Libraries, please see the Python Installation Guide.
The Ubuntu Linux VM already comes with Python 2.7 pre-installed, but it doesn't have Apache or django installed. Follow these steps to connect to your VM and install Apache and django.
Launch a new Terminal window.
Enter the following command to connect to the Windows Azure VM.
$ ssh yourusername@yourVmUrl
Enter the following commands to install django:
$ sudo apt-get install python-setuptools
$ sudo easy_install django
Enter the following command to install Apache with mod-wsgi:
$ sudo apt-get install apache2 libapache2-mod-wsgi
Creating a new Django application
Open the Terminal window you used in the previous section to ssh into your VM.
Enter the following commands to create a new Django project:
The django-admin.py script generates a basic structure for Django-based web sites:
- manage.py helps you to start hosting and stop hosting your Django-based web site
- helloworld\settings.py contains Django settings for your application.
- helloworld\urls.py contains the mapping code between each url and its view.
Create a new file named views.py in the helloworld subdirectory of django\helloworld, as a sibling of urls.py. This will contain the view that renders the "hello world" page. Start your editor and enter the following:
from django.http import HttpResponse
html = "<html><body>Hello World!</body></html>"
Now replace the contents of the urls.py file with the following:
from django.conf.urls.defaults import patterns, include, url
from helloworld.views import hello
urlpatterns = patterns('',
Deploying and running your Django web site
Edit the apache configuration file /etc/apache2/httpd.conf and add the following, replacing username with the user name that you specified during the creation of the VM:
WSGIScriptAlias / /home/*username*/django/helloworld/helloworld/wsgi.py
Allow from all
Restart apache with the following command:
$ sudo apachectl restart
Finally, load the web page in your browser:
Shutting down your Windows Azure virtual machine
When you're done with this tutorial, shutdown and/or remove your newly created Windows Azure virtual machine to free up resources for other tutorials and avoid incurring Windows Azure usage charges.