Введение в Django

Начало работы

Разбить на страницы
Показывать лекцию целиком

Цель лекции: Рассмотреть особенности установки фреймворка Django и языка программирования Python под различными операционными системами; создать первый проект на Django и запустить сервер разработчика; настроить базу данных для первого проекта

Ключевые термины: Django, установка, Python, Windows, Linux, сервер, разработка, проект, система, база, приложение, окружение, файл, пакет, virtualenv

Установка необходимого программного обеспечения.

Наше окружение разработчика состоит из языка программирования Python, Django, и системы базы данных. В следующих разделах мы увидим, как устанавливать эти программные пакеты.

Установка Python

Поскольку Django написан на Python, то естественным образом следует в первую очередь для настройки нашего окружения разработчика установить Python. Python доступен для разнообразных операционных систем, а потому нет различия установки Python от установки других программных пакетов. Конечно же, процесс зависит от операционной системы.

Для установки вам необходимо убедиться, что вы скачали последнюю версию Python. Для Django требуется версия Python 2.7 и выше. Последние версии Python: для версий 3.x – 3.42, для версий 2.x.- 2.7.9.

Пожалуйста, прочтите раздел, относящийся к вашей операционной системе для установочных инструкций.

Установка Python на Windows

Python имеет стандартный установщик для пользователей Windows. Просто зайдите на https://python.org/download и скачайте последнюю версию. Затем, сделайте двойной щелчок мышью на .exe или .msi файле и следуйте пошаговым инструкциям установщика. Графический установщик проведет вас через все этапы установки и создаст ярлыки к исполняемым файлам Python в меню Пуск.

Когда установка завершена, необходимо добавить каталог Python в системный путь, чтобы мы могли иметь доступ к Python из командной строки. Для этого нужно выполнить следующие шаги:

  • Открыть панель управления.
  • Два раза щелкнуть на иконку или текст Система и безопасность и затем найти пункт Система (как видно в Windows 7 и выше), как показано на следующем скриншоте:
  • Щелкнуть на Дополнительные параметры системы и появится всплывающее окно.
  • Щелкнуть на кнопку Переменные окружения и откроется новое диалоговое окно.
  • Выбрать системную переменную Path и отредактировать ее.
  • Добавить путь установки Python в качестве значения переменной (путь по умолчанию обычно выглядит как c:\PythonXX, где XX - ваша версия Python), как показано на следующем скриншоте:
  • Если вы хотите протестировать вашу установку, откройте диалоговое окно Выполнить, наберите python, и нажмите кнопку Enter. Должна открыться интерактивная оболочка Python. Не забудьте отделять новый путь от других c помощью точки с запятой(;).

    Установка Python на Linux

    Если вы используете Linux или какую-либо разновидность Unix, есть шансы, что у вас уже установлен Python. Чтобы это проверить, откройте терминал, наберите python, и нажмите кнопку Enter. Если вы увидите интерактивную оболочку Python, у вас уже установлен Python. После того, как вы набрали python в терминале, вы должны получить следующий вывод:

    В первой строке вывода отображается версия, установленная на вашей системе (в данном случае, 3.4.3).

    Если вы получили сообщение об ошибке вместо предыдущего вывода, или у вас старая версия Python, то прочтите нижеследующее.

    Для пользователей Linux/Unix рекомендуется установка и обновление Python через менеджер системных пакетов. Хотя есть детали, различающиеся от системы к системе, отличий от установки других пакетов нет.

    Для дистрибутивов Linux, основанных на APT, таких как Debian и Ubuntu, открыть терминал и набрать следующее:

     $ sudo apt-get update
     $ sudo apt-get install python
    

    Если у вас Synaptic Package Manager, просто наберите в поиске Python, выберите его пакет для установки и нажмите кнопку Apply.

    Пользователи других дистрибутивов Linux должны изучить системную документацию по использованию менеджера пакетов для установки пакетов.

    Установка Python на Mac OS X

    Mac OS X поставляется с предустановленным Python. Конечно, исходя из цикла разработки Apple, у вас может стоять старая версия. Если вы запустили интерактивную оболочку Python и у вас версия ниже 2.3, то перейдите по ссылке http://python.org/download/mac и скачать новую версию для вашей установленной Mac OS X.

    Итак, когда Python установлен, настроен и запущен, у нас все почти готово. Следующий шаг – установить virtualenv.

    Установка virtualenv

    C помощью virtualenv вы можете создать изолированное окружение Python. Это не слишком требуется в начале, но это спасает жизнь менеджеру зависимостей (к примеру, если одно веб-приложение требует одну версию библиотеки, а другое приложение, скованное совместимостью, требует другую версию той же библиотеки, или изменения, сделанные в одной библиотеке приложение, прерывают работу остального приложения).

    Virtualenv может быть использовано для предотвращения таких проблемных ситуаций. Оно создает свое окружение, не влияющее на глобальные настройки. Обычно оно создает свои собственные каталоги, и общие библиотеки, так что virtualenv работает, не пересекаясь ни с чем извне. Если у вас есть pip 1.3 и выше, установите его глобально. Вы можете использовать следующую команду для установки virtualenv:

    pip install virtualenv

    Когда полностью завершится скачивание, virtualenv будет выглядеть так:

    Теперь все! Сейчас вы можете создать свое виртуальное окружение, набрав следующую команду:

    $ virtualenv ENV

    Virtualenv имеет обширную онлайн-документацию, которой вы должны следовать при любой ситуации, возникающей у вас. Далее приводится выдержка из онлайн-документации в качестве примера:

    Создается ENV/lib/python.X.X/site-packages, куда помещаются любые установленные вами библиотеки. Создается также ENV/bin/python, где располагается интерпретатор Python, использующий свое окружение. Каждый раз, когда вы используете интерпретатор (включая скрипты, содержащие !#/path/to/ENV/python), используются библиотеки этого окружения.

    Мы можем найти онлайн-документацию для virtualenv по адресу: https://virtualenv.pypa.io/en/latest/.

    Новая папка virtualenv также включает в себя установщик pip, так что вы можете использовать команду ENV/bin/pip для установки дополнительных пакетов окружения.

    Скрипт активации. Во вновь созданном виртуальном окружении должен быть скрипт оболочки /bin/activate. Для Windows-систем активационные скрипты поставляются через CMD и PowerShell.

    Вы можете прочитать больше на странице:

    https://virtualenv.pypa.io/en/latest/virtualenv.html

    В Unix системах мы можем использовать следующую команду для активации скрипта virtualenv:

    $ source bin/activate

    В системе Windows мы можем использовать следующую команду для активации virtualenv из-под командной строки:

    :   >  \path\to\env\Scripts\activate

    Для отмены изменений наберите deactivate, как показано на следующем скриншоте:

    Это меняет вашу переменную $PATH.

    Чтобы узнать больше об активации скриптов, например, какое окружение вы используете, или нужно ли вам активировать скрипт, пожалуйста, посетите следующую ссылку: http://Virtualenv.readthedocs.org/en/Latest/Virtualenv.HTML

    Установка Django

    Установка Django очень проста, но она слегка зависит от вашей операционной системы. Поскольку Python является платформенно независимый языком, Django имеет один пакет, который работает везде, независимо от вашей операционной системы.

    Чтобы скачать Django, пройдите по ссылке http://www.djangoproject.com/download/ и возьмите последнюю официальную версию. Код в этой книге разрабатывался на Django 1.7 (последняя на момент написания), но большая часть кода должна работать на более поздних официальных релизах. Далее следуйте инструкции, относящимся к вашей платформе.

    Совместимость Django с операционными системами – Windows против Linux

    Есть несколько моментов, которые вам нужно знать, когда вы имеете дело с операционными системами. Многие пакеты и параметры нужно отшлифовать перед запуском Django без сучка и задоринки. Давайте посмотрим на некоторые:

  • Некоторые Python-пакеты не могут установиться корректно, как правило, под windows; Если же они устанавливаются, то могут создавать при работе кучи мусора.
  • Если вам нужно развернуть Django-приложение, то лучше остановить выбор на Unix-подобных системах, просто потому что в 99% случаев окружение разработки остается тем же самым.
  • Если приложения сложные, то легче получить зависимости в виде библиотек, расширений и всего прочего в Linux, и только там.
  • Установка Django в Windows

    После того, как вы скачали архив с Django, распакуйте его на диск C и откройте командную строку(Пуск|Служебные). Теперь смените текущий каталог на тот, в который вы распаковали Django следующей командой:

    c:\cd c:\Django-x.xx

    Здесь x.xx – ваша текущая версия Django.

    Далее установите Django, выполнив следующую команду (вам потребуются права администратора):

    C:\Django-x.xx.python setup.py install

    Если у вас нет программы, ассоциированной с файлами .tar.gz , то рекомендуется использовать 7-zip, который совершенно бесплатно доступен на http://www.7-zip.org

    Если, по каким-то причинам, предыдущие инструкции не работают, вы можете вручную скопировать папку django из архива в папку Lib\site-packages, расположенную в каталоге установки Python. Это выполнит команду установки setyp.py.

    Последний шаг заключается в копировании файла django-admin.py из каталога Django-x.xx\django\bin в какой-нибудь системный каталог, такой как с:\windows или каталог установки Python.

    После этого вы можете удалить за ненадобностью папку с:\Django-x.xx.

    Вот и все! Чтобы проверить вашу установку, откройте командную строку, наберите и выполните следующую команду:

    c:\>django-admin.py --version

    Если вы видите на экране текущую версию Django, то все настроено правильно.

    Установка Django на Linux/Unix и Mac OS X.

    Инструкции по установке для всех Linux и Unix систем одинаковы. Вам нужно выполнить следующие команды в каталоге, где расположен архив Django-x.xx.tar.gz. Эти команды распаковывают архив и устанавливают вам Django:

    $ tar xfz Django-x.xx.tar.gz 
    $ cd Django-x.xx 
    $ sudo python setup.py install
    

    Предыдущие инструкции должен работать на любой операционной системы семейства Unix/Linux, а также Mac OS X. Однако, возможно будет легче установить Django, используя менеджер пакетов вашей системы, если для нее есть пакет Django. Для Ubuntu есть такой пакет; поэтому для установки Django на Ubuntu, необходимо найти пакет под названием python-django в Synaptic или выполнить следующую команду:

    $ sudo apt-get install python-django

    Вы можете протестировать вашу установку, запустив следующую команду:

    $ django-admin.py --version

    Если вы видите на экране текущую версию Django, то все настроено правильно.

    Установка системы базы данных

    Пока приложение не требует наличия базы данных для обеспечения функциональности, мы еще не приступали к разработке приложения. Теперь, в качестве последнего шага установки программного обеспечения, мы должны убедиться, что у нас есть система базы данных для связи с нашими данными.

    Стоит отметить, что Django поддерживает несколько движков баз данных: MySQL, PostgreSQL, MS SQL Server, Oracle и SQLite. Интересно, что для доступа и к любой из этих баз данных, вам требуется знать один и тот же API. Это возможно, потому что слой баз данных Django абстрагирует доступ к системе базы данных.

    Мы познакомимся с этим позже, сейчас же вам только нужно знать, что независимо от выбранной вами базы данных, вы сможете запустить приложения Django, разработанные в этой книге (или любой другой) без изменений.

    Если у вас установлен Python 2.7 или выше, вам не нужно ничего устанавливать. Python 2.7 поставляется в комплекте с СУБД SQLite, содержащейся в модуле, называющемся sqlite3. В отличие от клиент-серверных систем баз данных SQLite не требуют резидентных процессов в памяти и база данных хранится в одном файле, что делает его идеальным для нашего окружения разработки.

    Если у вас установлен не Python 2.7, то вы можете загрузить модуль Python для SQLite вручную с сайта http://www.pysqlite.org/ (для пользователей Windows) или используя менеджер пакетов (Unix/Linux).

    С другой стороны, вы можете использовать существующую установку, если на вашей машине уже установлен сервер базы данных, поддерживаемый Django. Мы должны указать Django, какую систему базы данных использовать, отредактировав конфигурационный файл так, как мы увидим в дальнейшем. Возможно ли использовать Apache или какой-либо другой веб-сервер? В поставке Django есть свой собственный сервер, который мы будем использовать на стадии разработки по причине его легковесности и изначально настроен на работу с Django.Конечно же, Django поддерживает Apache и другие популярные веб-серверы, такие как light tpd, nginx и другие. Мы покажем, как настроить Django для Apache, когда мы будем готовить наше приложение к развертыванию, далее в книге.

    То же относится и к менеджеру базы данных. В течение стадии разработки, мы используем SQLite, потому что его легко настроить, но при развертывании приложения мы переключаемся на сервер базы данных, такой как MySQL.

    Как говорилось выше, код остается тем же самым вне зависимости от используемых компонентов; Django для нас соединяет всё с интернетом и сервером базы данных.

    Создание первого проекта

    Сейчас, когда все программное обеспечение находится на своем месте, пришло время для самой веселой части – созданию нашего первого проекта на Django!

    Если вы еще раз обратитесь к разделу установки, то увидите, что мы использовали для проверки установки команду django-admin.py. Эта утилита является сердцем управляющих мощностей проекта Django, так как она позволяет пользователю запустить ряд управляющих задач проекта, включая эти:

  • Создание нового проекта
  • Создание и управление базой данных проекта
  • Проверка текущего проекта и тестирование на ошибки
  • Начало разработки веб-сервера
  • Мы увидим, как использовать некоторые из этих задач в оставшейся части главы.

    Создание пустого проекта

    Для создания пустого проекта Django, откройте терминал (или командная строка у Windows пользователей; для запуска выполните: Пуск| Выполнить| cmd ) и наберите следующую команду. Затем, нажмите Enter.

     $ django-admin.py startproject django_bookmarks

    Эта команда создает папку с именем django_bookmarks в текущем каталоге и создает начальную структуру внутри нее. Посмотрим, что за файлы создались:

    django_bookmarks/
    |-- django_bookmarks
    |	|--init.py
    	|-- settings.py 
    |	|— urls.py
    "-- wsgi.py
     "-- manage.py
    

    Вот краткое пояснение, что это за файлы:

  • _init_.py: проекты Django являются пакетами языка Python, и этот файл необходим для указания Python’у на то, что данный каталог должен рассматриваться как пакет.

    Пакет в терминологии языка Python это коллекция модулей, и они используются для группировки похожих файлов и для предотвращения конфликта имен.

  • manage.py: это другой служебный скрипт, используется для управления нашим проектом. Вы можете подумать, что это версия файла django-admin.py в вашем проекте. Действительно, оба этих файла, manage.py и django-admin.py делят один и то же код.
  • settings.py: Это основной конфигурационный файл для вашего проекта Django. В нем вы можете отметить множество настроек, включая настройки базы данных, языка(ов) сайта, какие особенности Django необходимо задействовать и так далее. Некоторые разделы этого файла мы объясним по мере построения нашего приложения, в следующих главах, но в этой мы рассмотрим только настройки базы данных.
  • url.py: Это еще один конфигурационный файл. Вы можете подумать, что он служит отображением URL и связанных с ним функций Python. Этот файл является одной из мощных особенностей , и мы увидим, как обращаться с этим в следующей главе.
  • Когда мы начнем писать код для нашего приложения, мы создадим новые файлы внутри каталога проекта; потому каталог проекта служит так же и хранилищем для нашего кода.

    Теперь, когда мы дали общее представление о структуре проекта Django, давайте настроим нашу систему базы данных.

    Настройка базы данных

    В этом разделе мы начнем настройку базы данных с помощью различных настроек и конфигурационных файлов.

    Итак, сейчас когда у нас есть готовый к работе редактор кода, давайте откроем файл settings.py в папке проекта и посмотрим, что он содержит:

    """
    Django settings for django_bookmarks project.
    
    Generated by 'django-admin startproject' using Django 1.8.3.
    
    For more information on this file, see
    https://docs.djangoproject.com/en/1.8/topics/settings/
    
    For the full list of settings and their values, see
    https://docs.djangoproject.com/en/1.8/ref/settings/
    """
    
    # Build paths inside the project like this: os.path.join(BASE_DIR, ...)
    import os
    
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    
    
    # Quick-start development settings - unsuitable for production
    # See https://docs.djangoproject.com/en/1.8/howto/deployment/checklist/
    
    # SECURITY WARNING: keep the secret key used in production secret!
    SECRET_KEY = '2clp(s%zxfjsz44gv19u9darbtm@#=w7uivyjf^esfyn%)sjy'
    
    # SECURITY WARNING: don't run with debug turned on in production!
    DEBUG = True
    
    ALLOWED_HOSTS = []
    
    
    # Application definition
    
    INSTALLED_APPS = (
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
    )
    
    MIDDLEWARE_CLASSES = (
        'django.contrib.sessions.middleware.SessionMiddleware',
        'django.middleware.common.CommonMiddleware',
        'django.middleware.csrf.CsrfViewMiddleware',
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
        'django.contrib.messages.middleware.MessageMiddleware',
        'django.middleware.clickjacking.XFrameOptionsMiddleware',
        'django.middleware.security.SecurityMiddleware',
    )
    
    ROOT_URLCONF = 'django_bookmarks.urls'
    
    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [],
            'APP_DIRS': True,
            'OPTIONS': {
                'context_processors': [
                    'django.template.context_processors.debug',
                    'django.template.context_processors.request',
                    'django.contrib.auth.context_processors.auth',
                    'django.contrib.messages.context_processors.messages',
                ],
            },
        },
    ]
    
    WSGI_APPLICATION = 'django_bookmarks.wsgi.application'
    
    
    # Database
    # https://docs.djangoproject.com/en/1.8/ref/settings/#databases
    
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.sqlite3',
            'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        }
    }
    
    
    # Internationalization
    # https://docs.djangoproject.com/en/1.8/topics/i18n/
    
    LANGUAGE_CODE = 'en-us'
    
    TIME_ZONE = 'UTC'
    
    USE_I18N = True
    
    USE_L10N = True
    
    USE_TZ = True
    
    
    # Static files (CSS, JavaScript, Images)
    # https://docs.djangoproject.com/en/1.8/howto/static-files/
    
    STATIC_URL = '/static/'
    

    Как вы могли уже отметить, файл содержит некоторое число переменных, контролирующих некоторые аспекты приложения. Вставить новое значение так же просто, как сделать присвоение состояния в Python. В довершение ко всему, файл богато комментирован, детально поясняя, что каждая переменная контролирует.

    Но сейчас нас интересует настройка базы данных. Как отмечалось выше, Django поддерживает несколько систем баз данных, поэтому необходимо определиться, какую систему базы данных мы будем использовать. Это контролируется переменной DATABASE_ENGINE. Если вы установили SQLite, установите значение переменной в ‘sqlite3’. В противном случае выберите значение переменной исходя из выбранной вами базы данных.

    Следующий шаг – указание имени базы данных. Оставьте имя базы данных по умолчанию, как есть. С другой стороны, если у вас есть сервер базы данных, вам нужно сделать следующее:

  • Ввести верную информацию о базе данных: логин, пароль, хост и порт (Для SQLite не требуется).
  • Создать базу данных на сервере базы данных, так как с помощью Django такая операция недоступна. В MySQL, к примеру, это можно сделать, используя команду mysql или утилиту командной строки phpMyAdmin.
  • Наконец, мы должны популярно рассказать Django о настроенной базе данных с таблицами. Хотя мы еще не создавали таблиц для наших данных (по крайней мере, до следующей главы), Django требуются некоторые таблицы в базе данных для обеспечения нормальной функциональности. Легко создать эти таблицы, используя следующую команду:

    $ python manage.py syncdb

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

    Если же все в порядке, мы готовы запускать приложение.

    Когда вы выполняете команду, начинающуюся с python manage.py, вы должны убедиться в наличии файла manage.py в текущем каталоге проекта.

    Запуск сервера разработки

    Как обсуждалось ранее, Django поставляется вместе с легковесным веб-сервером для разработки и тестирования приложений. Этот сервер предварительно настроен на работу с Django, он перезапускается каждый раз, когда изменяется код.

    Для запуска сервера введите следующую команду:

    $ python manage.py runserver

    Далее, откройте ваш браузер и перейдите по этому адресу: http://localhost:8000/.

    Вы должны увидеть сообщение-приглашение, как показано на следующем скриншоте:

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

    Как вы могли заметить, веб-сервер по умолчанию использует порт 8000. Если вы захотите изменить порт, вам нужно определить его с помощью следующей команды:

    $ python manage.py runserver <port number>

    Также, по умолчанию сервер разработки запускается на локальной машине. Если вы хотите, чтобы сервер разработки был доступен в вашей сети, используйте следующие аргументы командной строки:

    $ python manage.py runserver 0.0.0.0:<port numbers>

    Контрольные вопросы

  • Для чего можно использовать virtualenv?
  • Какая команда служит для проверки установленной версии Django?
  • Какие СУБД поддерживаются Django официально?
  • Каково назначение файла manage.py в проекте?
  • Какой веб-сервер рекомендуется в случае, если у вас уже запущен сервер базы данных на вашей машине?
  • Упражнения

    Упражнение 1.

    Используя официальную документацию по Django, определите назначение следующих настроек в файле settings.py вашего первого проекта:

  • WSGI_APPLICATION
  • USE_I18N
  • USE_L10N
  • ALLOWED_HOSTS
  • Упражнение 2.

    Перейдите по адресу http: //djangoproject.com, затем загрузите и установите веб-платформу Django (и SQLite, если не используется ПК с операционной системой Windows, поскольку SQLite предосrавляется по умолчанию, начиная с версии Python 2.5 для Windows).

    Упражнение 3.

    Выполните сценарий dj ango-admin. ру startproj ect helloworld для запуска проекта, затем выполните команды cd helloworld; python . / manage. ру startapp hello, чтобы запустить приложение.

    Упражнение 4.

    Измените порт запуска сервера разработки и добейтесь повторного запуска сервера разработки

    Краткие итоги

  • Подготовили окружение разработчика
  • Создали первый проект
  • Научились запускать сервер разработчика
  • Научились устанавливать Django в Windows и Linux
  • Научились устанавливать virtualenv в Windows и Linux
  • Научились устанавливать базу данных
  • Изучили основные механизмы работы настроек Django
  • Изучили структуру настроек проекта
  • Изучили базовую структуру проекта
  • Установили Python на различные ОС
  • Страницы:

    Цель лекции: Рассмотреть особенности установки фреймворка Django и языка программирования Python под различными операционными системами; создать первый проект на Django и запустить сервер разработчика; настроить базу данных для первого проекта

    Ключевые термины: Django, установка, Python, Windows, Linux, сервер, разработка, проект, система, база, приложение, окружение, файл, пакет, virtualenv

    Установка необходимого программного обеспечения.

    Наше окружение разработчика состоит из языка программирования Python, Django, и системы базы данных. В следующих разделах мы увидим, как устанавливать эти программные пакеты.

    Установка Python

    Поскольку Django написан на Python, то естественным образом следует в первую очередь для настройки нашего окружения разработчика установить Python. Python доступен для разнообразных операционных систем, а потому нет различия установки Python от установки других программных пакетов. Конечно же, процесс зависит от операционной системы.

    Для установки вам необходимо убедиться, что вы скачали последнюю версию Python. Для Django требуется версия Python 2.7 и выше. Последние версии Python: для версий 3.x – 3.42, для версий 2.x.- 2.7.9.

    Пожалуйста, прочтите раздел, относящийся к вашей операционной системе для установочных инструкций.

    Установка Python на Windows

    Python имеет стандартный установщик для пользователей Windows. Просто зайдите на https://python.org/download и скачайте последнюю версию. Затем, сделайте двойной щелчок мышью на .exe или .msi файле и следуйте пошаговым инструкциям установщика. Графический установщик проведет вас через все этапы установки и создаст ярлыки к исполняемым файлам Python в меню Пуск.

    Когда установка завершена, необходимо добавить каталог Python в системный путь, чтобы мы могли иметь доступ к Python из командной строки. Для этого нужно выполнить следующие шаги:

  • Открыть панель управления.
  • Два раза щелкнуть на иконку или текст Система и безопасность и затем найти пункт Система (как видно в Windows 7 и выше), как показано на следующем скриншоте:
  • Щелкнуть на Дополнительные параметры системы и появится всплывающее окно.
  • Щелкнуть на кнопку Переменные окружения и откроется новое диалоговое окно.
  • Выбрать системную переменную Path и отредактировать ее.
  • Добавить путь установки Python в качестве значения переменной (путь по умолчанию обычно выглядит как c:\PythonXX, где XX - ваша версия Python), как показано на следующем скриншоте:
  • Если вы хотите протестировать вашу установку, откройте диалоговое окно Выполнить, наберите python, и нажмите кнопку Enter. Должна открыться интерактивная оболочка Python. Не забудьте отделять новый путь от других c помощью точки с запятой(;).

    Установка Python на Linux

    Если вы используете Linux или какую-либо разновидность Unix, есть шансы, что у вас уже установлен Python. Чтобы это проверить, откройте терминал, наберите python, и нажмите кнопку Enter. Если вы увидите интерактивную оболочку Python, у вас уже установлен Python. После того, как вы набрали python в терминале, вы должны получить следующий вывод:

    В первой строке вывода отображается версия, установленная на вашей системе (в данном случае, 3.4.3).

    Если вы получили сообщение об ошибке вместо предыдущего вывода, или у вас старая версия Python, то прочтите нижеследующее.

    Для пользователей Linux/Unix рекомендуется установка и обновление Python через менеджер системных пакетов. Хотя есть детали, различающиеся от системы к системе, отличий от установки других пакетов нет.

    Для дистрибутивов Linux, основанных на APT, таких как Debian и Ubuntu, открыть терминал и набрать следующее:

     $ sudo apt-get update
     $ sudo apt-get install python
    

    Если у вас Synaptic Package Manager, просто наберите в поиске Python, выберите его пакет для установки и нажмите кнопку Apply.

    Пользователи других дистрибутивов Linux должны изучить системную документацию по использованию менеджера пакетов для установки пакетов.

    Установка Python на Mac OS X

    Mac OS X поставляется с предустановленным Python. Конечно, исходя из цикла разработки Apple, у вас может стоять старая версия. Если вы запустили интерактивную оболочку Python и у вас версия ниже 2.3, то перейдите по ссылке http://python.org/download/mac и скачать новую версию для вашей установленной Mac OS X.

    Итак, когда Python установлен, настроен и запущен, у нас все почти готово. Следующий шаг – установить virtualenv.

    Установка virtualenv

    C помощью virtualenv вы можете создать изолированное окружение Python. Это не слишком требуется в начале, но это спасает жизнь менеджеру зависимостей (к примеру, если одно веб-приложение требует одну версию библиотеки, а другое приложение, скованное совместимостью, требует другую версию той же библиотеки, или изменения, сделанные в одной библиотеке приложение, прерывают работу остального приложения).

    Virtualenv может быть использовано для предотвращения таких проблемных ситуаций. Оно создает свое окружение, не влияющее на глобальные настройки. Обычно оно создает свои собственные каталоги, и общие библиотеки, так что virtualenv работает, не пересекаясь ни с чем извне. Если у вас есть pip 1.3 и выше, установите его глобально. Вы можете использовать следующую команду для установки virtualenv:

    pip install virtualenv

    Когда полностью завершится скачивание, virtualenv будет выглядеть так:

    Теперь все! Сейчас вы можете создать свое виртуальное окружение, набрав следующую команду:

    $ virtualenv ENV

    Virtualenv имеет обширную онлайн-документацию, которой вы должны следовать при любой ситуации, возникающей у вас. Далее приводится выдержка из онлайн-документации в качестве примера:

    Создается ENV/lib/python.X.X/site-packages, куда помещаются любые установленные вами библиотеки. Создается также ENV/bin/python, где располагается интерпретатор Python, использующий свое окружение. Каждый раз, когда вы используете интерпретатор (включая скрипты, содержащие !#/path/to/ENV/python), используются библиотеки этого окружения.

    Мы можем найти онлайн-документацию для virtualenv по адресу: https://virtualenv.pypa.io/en/latest/.

    Новая папка virtualenv также включает в себя установщик pip, так что вы можете использовать команду ENV/bin/pip для установки дополнительных пакетов окружения.

    Скрипт активации. Во вновь созданном виртуальном окружении должен быть скрипт оболочки /bin/activate. Для Windows-систем активационные скрипты поставляются через CMD и PowerShell.

    Вы можете прочитать больше на странице:

    https://virtualenv.pypa.io/en/latest/virtualenv.html

    В Unix системах мы можем использовать следующую команду для активации скрипта virtualenv:

    $ source bin/activate

    В системе Windows мы можем использовать следующую команду для активации virtualenv из-под командной строки:

    :   >  \path\to\env\Scripts\activate

    Для отмены изменений наберите deactivate, как показано на следующем скриншоте:

    Это меняет вашу переменную $PATH.

    Чтобы узнать больше об активации скриптов, например, какое окружение вы используете, или нужно ли вам активировать скрипт, пожалуйста, посетите следующую ссылку: http://Virtualenv.readthedocs.org/en/Latest/Virtualenv.HTML

    Установка Django

    Установка Django очень проста, но она слегка зависит от вашей операционной системы. Поскольку Python является платформенно независимый языком, Django имеет один пакет, который работает везде, независимо от вашей операционной системы.

    Чтобы скачать Django, пройдите по ссылке http://www.djangoproject.com/download/ и возьмите последнюю официальную версию. Код в этой книге разрабатывался на Django 1.7 (последняя на момент написания), но большая часть кода должна работать на более поздних официальных релизах. Далее следуйте инструкции, относящимся к вашей платформе.

    Совместимость Django с операционными системами – Windows против Linux

    Есть несколько моментов, которые вам нужно знать, когда вы имеете дело с операционными системами. Многие пакеты и параметры нужно отшлифовать перед запуском Django без сучка и задоринки. Давайте посмотрим на некоторые:

  • Некоторые Python-пакеты не могут установиться корректно, как правило, под windows; Если же они устанавливаются, то могут создавать при работе кучи мусора.
  • Если вам нужно развернуть Django-приложение, то лучше остановить выбор на Unix-подобных системах, просто потому что в 99% случаев окружение разработки остается тем же самым.
  • Если приложения сложные, то легче получить зависимости в виде библиотек, расширений и всего прочего в Linux, и только там.
  • Установка Django в Windows

    После того, как вы скачали архив с Django, распакуйте его на диск C и откройте командную строку(Пуск|Служебные). Теперь смените текущий каталог на тот, в который вы распаковали Django следующей командой:

    c:\cd c:\Django-x.xx

    Здесь x.xx – ваша текущая версия Django.

    Далее установите Django, выполнив следующую команду (вам потребуются права администратора):

    C:\Django-x.xx.python setup.py install

    Если у вас нет программы, ассоциированной с файлами .tar.gz , то рекомендуется использовать 7-zip, который совершенно бесплатно доступен на http://www.7-zip.org

    Если, по каким-то причинам, предыдущие инструкции не работают, вы можете вручную скопировать папку django из архива в папку Lib\site-packages, расположенную в каталоге установки Python. Это выполнит команду установки setyp.py.

    Последний шаг заключается в копировании файла django-admin.py из каталога Django-x.xx\django\bin в какой-нибудь системный каталог, такой как с:\windows или каталог установки Python.

    После этого вы можете удалить за ненадобностью папку с:\Django-x.xx.

    Вот и все! Чтобы проверить вашу установку, откройте командную строку, наберите и выполните следующую команду:

    c:\>django-admin.py --version

    Если вы видите на экране текущую версию Django, то все настроено правильно.

    Установка Django на Linux/Unix и Mac OS X.

    Инструкции по установке для всех Linux и Unix систем одинаковы. Вам нужно выполнить следующие команды в каталоге, где расположен архив Django-x.xx.tar.gz. Эти команды распаковывают архив и устанавливают вам Django:

    $ tar xfz Django-x.xx.tar.gz 
    $ cd Django-x.xx 
    $ sudo python setup.py install
    

    Предыдущие инструкции должен работать на любой операционной системы семейства Unix/Linux, а также Mac OS X. Однако, возможно будет легче установить Django, используя менеджер пакетов вашей системы, если для нее есть пакет Django. Для Ubuntu есть такой пакет; поэтому для установки Django на Ubuntu, необходимо найти пакет под названием python-django в Synaptic или выполнить следующую команду:

    $ sudo apt-get install python-django

    Вы можете протестировать вашу установку, запустив следующую команду:

    $ django-admin.py --version

    Если вы видите на экране текущую версию Django, то все настроено правильно.

    Установка системы базы данных

    Пока приложение не требует наличия базы данных для обеспечения функциональности, мы еще не приступали к разработке приложения. Теперь, в качестве последнего шага установки программного обеспечения, мы должны убедиться, что у нас есть система базы данных для связи с нашими данными.

    Стоит отметить, что Django поддерживает несколько движков баз данных: MySQL, PostgreSQL, MS SQL Server, Oracle и SQLite. Интересно, что для доступа и к любой из этих баз данных, вам требуется знать один и тот же API. Это возможно, потому что слой баз данных Django абстрагирует доступ к системе базы данных.

    Мы познакомимся с этим позже, сейчас же вам только нужно знать, что независимо от выбранной вами базы данных, вы сможете запустить приложения Django, разработанные в этой книге (или любой другой) без изменений.

    Если у вас установлен Python 2.7 или выше, вам не нужно ничего устанавливать. Python 2.7 поставляется в комплекте с СУБД SQLite, содержащейся в модуле, называющемся sqlite3. В отличие от клиент-серверных систем баз данных SQLite не требуют резидентных процессов в памяти и база данных хранится в одном файле, что делает его идеальным для нашего окружения разработки.

    Если у вас установлен не Python 2.7, то вы можете загрузить модуль Python для SQLite вручную с сайта http://www.pysqlite.org/ (для пользователей Windows) или используя менеджер пакетов (Unix/Linux).

    С другой стороны, вы можете использовать существующую установку, если на вашей машине уже установлен сервер базы данных, поддерживаемый Django. Мы должны указать Django, какую систему базы данных использовать, отредактировав конфигурационный файл так, как мы увидим в дальнейшем. Возможно ли использовать Apache или какой-либо другой веб-сервер? В поставке Django есть свой собственный сервер, который мы будем использовать на стадии разработки по причине его легковесности и изначально настроен на работу с Django.Конечно же, Django поддерживает Apache и другие популярные веб-серверы, такие как light tpd, nginx и другие. Мы покажем, как настроить Django для Apache, когда мы будем готовить наше приложение к развертыванию, далее в книге.

    То же относится и к менеджеру базы данных. В течение стадии разработки, мы используем SQLite, потому что его легко настроить, но при развертывании приложения мы переключаемся на сервер базы данных, такой как MySQL.

    Как говорилось выше, код остается тем же самым вне зависимости от используемых компонентов; Django для нас соединяет всё с интернетом и сервером базы данных.

    Создание первого проекта

    Сейчас, когда все программное обеспечение находится на своем месте, пришло время для самой веселой части – созданию нашего первого проекта на Django!

    Если вы еще раз обратитесь к разделу установки, то увидите, что мы использовали для проверки установки команду django-admin.py. Эта утилита является сердцем управляющих мощностей проекта Django, так как она позволяет пользователю запустить ряд управляющих задач проекта, включая эти:

  • Создание нового проекта
  • Создание и управление базой данных проекта
  • Проверка текущего проекта и тестирование на ошибки
  • Начало разработки веб-сервера
  • Мы увидим, как использовать некоторые из этих задач в оставшейся части главы.

    Создание пустого проекта

    Для создания пустого проекта Django, откройте терминал (или командная строка у Windows пользователей; для запуска выполните: Пуск| Выполнить| cmd ) и наберите следующую команду. Затем, нажмите Enter.

     $ django-admin.py startproject django_bookmarks

    Эта команда создает папку с именем django_bookmarks в текущем каталоге и создает начальную структуру внутри нее. Посмотрим, что за файлы создались:

    django_bookmarks/
    |-- django_bookmarks
    |	|--init.py
    	|-- settings.py 
    |	|— urls.py
    "-- wsgi.py
     "-- manage.py
    

    Вот краткое пояснение, что это за файлы:

  • _init_.py: проекты Django являются пакетами языка Python, и этот файл необходим для указания Python’у на то, что данный каталог должен рассматриваться как пакет.

    Пакет в терминологии языка Python это коллекция модулей, и они используются для группировки похожих файлов и для предотвращения конфликта имен.

  • manage.py: это другой служебный скрипт, используется для управления нашим проектом. Вы можете подумать, что это версия файла django-admin.py в вашем проекте. Действительно, оба этих файла, manage.py и django-admin.py делят один и то же код.
  • settings.py: Это основной конфигурационный файл для вашего проекта Django. В нем вы можете отметить множество настроек, включая настройки базы данных, языка(ов) сайта, какие особенности Django необходимо задействовать и так далее. Некоторые разделы этого файла мы объясним по мере построения нашего приложения, в следующих главах, но в этой мы рассмотрим только настройки базы данных.
  • url.py: Это еще один конфигурационный файл. Вы можете подумать, что он служит отображением URL и связанных с ним функций Python. Этот файл является одной из мощных особенностей , и мы увидим, как обращаться с этим в следующей главе.
  • Когда мы начнем писать код для нашего приложения, мы создадим новые файлы внутри каталога проекта; потому каталог проекта служит так же и хранилищем для нашего кода.

    Теперь, когда мы дали общее представление о структуре проекта Django, давайте настроим нашу систему базы данных.

    Настройка базы данных

    В этом разделе мы начнем настройку базы данных с помощью различных настроек и конфигурационных файлов.

    Итак, сейчас когда у нас есть готовый к работе редактор кода, давайте откроем файл settings.py в папке проекта и посмотрим, что он содержит:

    """
    Django settings for django_bookmarks project.
    
    Generated by 'django-admin startproject' using Django 1.8.3.
    
    For more information on this file, see
    https://docs.djangoproject.com/en/1.8/topics/settings/
    
    For the full list of settings and their values, see
    https://docs.djangoproject.com/en/1.8/ref/settings/
    """
    
    # Build paths inside the project like this: os.path.join(BASE_DIR, ...)
    import os
    
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    
    
    # Quick-start development settings - unsuitable for production
    # See https://docs.djangoproject.com/en/1.8/howto/deployment/checklist/
    
    # SECURITY WARNING: keep the secret key used in production secret!
    SECRET_KEY = '2clp(s%zxfjsz44gv19u9darbtm@#=w7uivyjf^esfyn%)sjy'
    
    # SECURITY WARNING: don't run with debug turned on in production!
    DEBUG = True
    
    ALLOWED_HOSTS = []
    
    
    # Application definition
    
    INSTALLED_APPS = (
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
    )
    
    MIDDLEWARE_CLASSES = (
        'django.contrib.sessions.middleware.SessionMiddleware',
        'django.middleware.common.CommonMiddleware',
        'django.middleware.csrf.CsrfViewMiddleware',
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
        'django.contrib.messages.middleware.MessageMiddleware',
        'django.middleware.clickjacking.XFrameOptionsMiddleware',
        'django.middleware.security.SecurityMiddleware',
    )
    
    ROOT_URLCONF = 'django_bookmarks.urls'
    
    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [],
            'APP_DIRS': True,
            'OPTIONS': {
                'context_processors': [
                    'django.template.context_processors.debug',
                    'django.template.context_processors.request',
                    'django.contrib.auth.context_processors.auth',
                    'django.contrib.messages.context_processors.messages',
                ],
            },
        },
    ]
    
    WSGI_APPLICATION = 'django_bookmarks.wsgi.application'
    
    
    # Database
    # https://docs.djangoproject.com/en/1.8/ref/settings/#databases
    
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.sqlite3',
            'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        }
    }
    
    
    # Internationalization
    # https://docs.djangoproject.com/en/1.8/topics/i18n/
    
    LANGUAGE_CODE = 'en-us'
    
    TIME_ZONE = 'UTC'
    
    USE_I18N = True
    
    USE_L10N = True
    
    USE_TZ = True
    
    
    # Static files (CSS, JavaScript, Images)
    # https://docs.djangoproject.com/en/1.8/howto/static-files/
    
    STATIC_URL = '/static/'
    

    Как вы могли уже отметить, файл содержит некоторое число переменных, контролирующих некоторые аспекты приложения. Вставить новое значение так же просто, как сделать присвоение состояния в Python. В довершение ко всему, файл богато комментирован, детально поясняя, что каждая переменная контролирует.

    Но сейчас нас интересует настройка базы данных. Как отмечалось выше, Django поддерживает несколько систем баз данных, поэтому необходимо определиться, какую систему базы данных мы будем использовать. Это контролируется переменной DATABASE_ENGINE. Если вы установили SQLite, установите значение переменной в ‘sqlite3’. В противном случае выберите значение переменной исходя из выбранной вами базы данных.

    Следующий шаг – указание имени базы данных. Оставьте имя базы данных по умолчанию, как есть. С другой стороны, если у вас есть сервер базы данных, вам нужно сделать следующее:

  • Ввести верную информацию о базе данных: логин, пароль, хост и порт (Для SQLite не требуется).
  • Создать базу данных на сервере базы данных, так как с помощью Django такая операция недоступна. В MySQL, к примеру, это можно сделать, используя команду mysql или утилиту командной строки phpMyAdmin.
  • Наконец, мы должны популярно рассказать Django о настроенной базе данных с таблицами. Хотя мы еще не создавали таблиц для наших данных (по крайней мере, до следующей главы), Django требуются некоторые таблицы в базе данных для обеспечения нормальной функциональности. Легко создать эти таблицы, используя следующую команду:

    $ python manage.py syncdb

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

    Если же все в порядке, мы готовы запускать приложение.

    Когда вы выполняете команду, начинающуюся с python manage.py, вы должны убедиться в наличии файла manage.py в текущем каталоге проекта.

    Запуск сервера разработки

    Как обсуждалось ранее, Django поставляется вместе с легковесным веб-сервером для разработки и тестирования приложений. Этот сервер предварительно настроен на работу с Django, он перезапускается каждый раз, когда изменяется код.

    Для запуска сервера введите следующую команду:

    $ python manage.py runserver

    Далее, откройте ваш браузер и перейдите по этому адресу: http://localhost:8000/.

    Вы должны увидеть сообщение-приглашение, как показано на следующем скриншоте:

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

    Как вы могли заметить, веб-сервер по умолчанию использует порт 8000. Если вы захотите изменить порт, вам нужно определить его с помощью следующей команды:

    $ python manage.py runserver <port number>

    Также, по умолчанию сервер разработки запускается на локальной машине. Если вы хотите, чтобы сервер разработки был доступен в вашей сети, используйте следующие аргументы командной строки:

    $ python manage.py runserver 0.0.0.0:<port numbers>

    Контрольные вопросы

  • Для чего можно использовать virtualenv?
  • Какая команда служит для проверки установленной версии Django?
  • Какие СУБД поддерживаются Django официально?
  • Каково назначение файла manage.py в проекте?
  • Какой веб-сервер рекомендуется в случае, если у вас уже запущен сервер базы данных на вашей машине?
  • Упражнения

    Упражнение 1.

    Используя официальную документацию по Django, определите назначение следующих настроек в файле settings.py вашего первого проекта:

  • WSGI_APPLICATION
  • USE_I18N
  • USE_L10N
  • ALLOWED_HOSTS
  • Упражнение 2.

    Перейдите по адресу http: //djangoproject.com, затем загрузите и установите веб-платформу Django (и SQLite, если не используется ПК с операционной системой Windows, поскольку SQLite предосrавляется по умолчанию, начиная с версии Python 2.5 для Windows).

    Упражнение 3.

    Выполните сценарий dj ango-admin. ру startproj ect helloworld для запуска проекта, затем выполните команды cd helloworld; python . / manage. ру startapp hello, чтобы запустить приложение.

    Упражнение 4.

    Измените порт запуска сервера разработки и добейтесь повторного запуска сервера разработки

    Краткие итоги

  • Подготовили окружение разработчика
  • Создали первый проект
  • Научились запускать сервер разработчика
  • Научились устанавливать Django в Windows и Linux
  • Научились устанавливать virtualenv в Windows и Linux
  • Научились устанавливать базу данных
  • Изучили основные механизмы работы настроек Django
  • Изучили структуру настроек проекта
  • Изучили базовую структуру проекта
  • Установили Python на различные ОС
  • Вернуться к учебному плану