Развертывание приложения на базе Django (Python) в Windows Azure

Это руководство посвящено размещению на платформе Windows Azure веб-сайта на основе Django при помощи виртуальной машины Linux. При изложении материала предполагается, что пользователь не имеет опыта работы с Windows Azure. Выполнение всех шагов данного руководства позволяет запустить приложение на основе Django в облаке.

Изучив это руководство, вы сможете:

  • Настроить виртуальную машину Windows Azure для размещения Django. В этом документе приведены настройки для Linux. Однако эти сведения можно использовать и для виртуальной машины Windows Server 2008 R2, работающей на платформе Windows Azure.
  • Создать новое приложение Django для Linux.

Следуя приведенным инструкциям, вы создадите простое веб-приложение Hello World. Это приложение будет размещено на виртуальной машине портала ознакомительной версии Windows Azure.

Снимок экрана готового приложения приведен ниже.

clip_image001

Примечание. Для выполнения действий, описываемых в этом руководстве, необходима учетная запись Windows Azure с активированной функцией Виртуальные машины Windows Azure. Создать бесплатную пробную учетную запись и активировать функции для предварительного ознакомления можно всего за несколько минут. Для получения дополнительных сведений см. Create a Windows Azure account and enable preview features (Создание учетной записи Windows Azure и включение функций для предварительного ознакомления).

Создание и настройка виртуальной машины Windows Azure для размещения Django

Следуйте инструкциям, приведенным здесь, чтобы создать виртуальную машину под управлением Ubuntu Server 12.04 на портале ознакомительной версии Windows Azure.

Примечание: все, что вам нужно, это создать виртуальную машину. Изучите раздел Как войти в систему на созданной виртуальной машине.

Настройте Windows Azure так, чтобы данные, поступающие на порт 80 из Интернета, перенаправлялись на порт 80 виртуальной машины.

На портале ознакомительной версии Windows Azure выберите вновь созданную виртуальную машину и откройте вкладку ENDPOINTS (Конечные точки).

Нажмите кнопку ADD ENDPOINT (Добавить конечную точку) в нижней части экрана.

clip_image002

Для протокола TCP откройте PUBLIC PORT (частный порт) 80 как PRIVATE PORT (общедоступный порт) 80.

clip_image003

Настройка среды разработки

Примечание: если вам нужно установить Python или использовать клиентские библиотеки, см. руководство по установке Python.

Виртуальная машина Ubuntu Linux уже имеет в своем составе предустановленный Python 2.7. Однако Apache и Django не установлены. Для подключения к виртуальной машине и установки Apache и Django выполните следующие действия:

Откройте новое окно Terminal (Терминал) . Для подключения к виртуальной машине Windows Azure введите следующую команду:

$ ssh имя_пользователя@Url_виртуальной_машины

Чтобы установить Django, введите следующие команды:

$ sudo apt-get install python-setuptools
$ sudo easy_install django

Чтобы установить Apache с модулем mod-wsgi, введите следующую команду:

$ sudo apt-get install apache2 libapache2-mod-wsgi

Создание приложения Django

Откройте окно Terminal, которое вы использовали в предыдущем разделе для подключения к виртуальной машине при помощи ssh. Чтобы создать новый проект Django, введите следующую команду:

clip_image004

Сценарий django-admin.py создает основные элементы структуры сайта на основе Django.

  • manage.py позволяет начать и остановить размещение веб-сайта на основе Django.
  • helloworld\settings.py содержит настройки Django для приложения.
  • helloworld\urls.py содержит код соответствия для каждого URL-адреса и его представления.

Создайте файл views.py в подкаталоге helloworld папки django\helloworld как элемент того же уровня, что и urls.py. Содержащийся в нем код будет создавать страницу "hello world". Откройте редактор и введите следующие строки:

from django.http import HttpResponse
def hello(request):
    html = "<html><body>Hello World!</body></html>"
    return HttpResponse(html)

Теперь замените содержимое файла urls.py следующими строками:

from django.conf.urls.defaults import patterns, include, url
from helloworld.views import hello
urlpatterns = patterns('',
    (r'^$',hello),
)

Развертывание и запуск веб-сайта Django

Отредактируйте файл на строке Apache /etc/apache2/httpd.conf. Добавьте следующие строки, заменив username на имя пользователя, которое вы указали при создании виртуальной машины.

WSGIScriptAlias / /home/*username*/django/helloworld/helloworld/wsgi.py
WSGIPythonPath /home/*username*/django/helloworld

<Directory /home/*username*/django/helloworld/helloworld>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>

Перезапустите Apache с помощью следующей команды:

$ sudo apachectl restart

И наконец, откройте веб-страницу в браузере.

clip_image001[1]

Выключение виртуальной машины Windows Azure

Завершив этот урок, остановите и при необходимости удалите виртуальную машину Windows Azure, чтобы освободить ресурсы для других учебных задач и остаться в рамках бесплатной функциональности Windows Azure.

Это перевод оригинальной статьи Django Hello World Web Application