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:
To complete this tutorial, you need a Windows Azure account. You can create a free trial account in just a couple of minutes. For details, see Windows Azure Free Trial.
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.