- Django CMS Обучение
- четверг, 23 августа 2012 г.
- Django Создание проекта и запуск сервера
- Твой первый проект на Django!
- Изменяем настройки
- Настройка базы данных
- Запуск веб-сервера
- Django запуск сервера windows
- Где должен располагаться этот каталог
- Замечание
- Запуск сервера разработки
- Как изменить адрес и порт на котором работает сервер
Django CMS Обучение
четверг, 23 августа 2012 г.
Django Создание проекта и запуск сервера
Создайте на жестком диске папку, в которой будут хранится файлы вашего проекта.
Откройте консоль командной строки и перейди в созданную вами папку.
Далее выполните введите следующую команду и нажмите Enter.
django-admin.py startproject mysite
Это создаст папку «mysite» в текущем выбранной папке.
Вы не должны использовать в качестве названия проекта названия компонентов Python или Django.
Это означает, что проект не может называться django (что конфликтует с Django) или test (конфликтует со стандартным пакетом Python).
Давайте посмотрим что создала команда startproject:
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
wsgi.py
Структура проекта по-умолчанию была недавно изменена. Если вы видите «простую» структуру (без внутреннего каталога mysite/), возможно вы используете версию Django которая не соответствует этому описанию. Вам следует читать старую версию учебника или обновить Django.
Рассмотрим эти файлы:
Внешний каталог mysite/ – просто контейнер для вашего проекта. Его название никак не используется Django и вы можете назвать его как угодно.
manage.py — скрипт, который позволяет вам взаимодействовать с проектом Django.
Внутренний каталог mysite/ — это пакет Python вашего проекта. Его название – это название пакета Python, которое вы будете использовать для импорта чего-либо из проекта (например, import mysite.settings).
mysite/__init__.py — пустой файл, который указывает Python, что текущий каталог является пакетом Python.
mysite/settings.py — настройки/конфигурация проекта.
mysite/urls.py — конфигурация URL-ов для вашего проекта Django.
mysite/wsgi.py — точки входа для WSGI-совместимый веб-серверов.
Давайте проверим как работает этот проект. Перейдите во внешний каталог mysite, если вы этого еще не сделали, и выполните команду python manage.py runserver. Вы увидите следующий вывод:
Validating models.
0 errors found.
Django version 1.4, using settings ‘mysite.settings’
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Только что вы запустили сервер для разработки Djang — простой Web-сервер написанный на Python.
Теперь, когда сервер работает, перейдите на страницу http://127.0.0.1:8000/ в браузере. Вы увидите страницу с «Welcome to Django». Работает!
По-умолчанию, команда runserver запускает сервер для разработки на локальном IP используя порт 8000.
Если вы хотите изменить порт, укажите его через аргумент. Например, эта команда запускает сервер используя порт 8080:
python manage.py runserver 8080
Если вы хотите изменить IP, передайте его вместо со значением порта. Что бы прослушивать все публичные IP (полезно, если вы хотите показать свою работу на других компьютерах), используйте:
Твой первый проект на Django!
Отдельные части этой главы основаны на учебном пособии django-marcador , лицензированном под Creative Commons Attribution-ShareAlike 4.0 International License. Руководство django-marcador защищено авторским правом Markus Zapke-Gründemann et al.
Мы собираемся создать простой блог!
Первый шаг — создать новый проект Django. В сущности, это значит, что мы запустим несколько стандартных скриптов из поставки Django, которые создадут для нас скелет проекта. Это просто куча каталогов и файлов, которые мы используем позже.
Названия этих каталогов и файлов очень важны для Django. Ты не должна переименовывать их. Перемещать их в другое место тоже не самая удачная идея. Django необходима определенная структура, чтобы иметь возможность найти важные вещи.
Не забудь: ты должна запускать все команды в virtualenv. Если ты не видишь в командной строке префикса (myvenv) , то необходимо активировать virtualenv. Мы объясняли, как это сделать, в разделе Работаем с virtualenv главы Установка Django. Для этого нужно набрать myvenv\Scripts\activate в Windows или source myvenv/bin/activate в Mac OS / Linux.
В консоли Mac OS или Linux нужно запустить следующую команду (не забудь добавить точку . в конце):
Точка . крайне важна, потому что говорит скрипту установить Django в вашем текущем каталоге (который и обозначается сокращённо точкой . )
Примечание: при вводе приведённой команды помни, что тебе нужно набирать только часть, начинающуюся с django-admin . (myvenv)
/djangogirls$ — это просто пример строки-приглашения терминала.
В Windows запусти следующую команду (не забудь добавить точку . в конце):
Точка . крайне важна, потому что говорит скрипту установить Django в вашем текущем каталоге (который и обозначается сокращённо точкой . )
Примечание: при вводе приведённой команды помни, что тебе нужно набирать только часть, начинающуюся с django-admin.exe . (myvenv) C:\Users\Name\djangogirls> — это просто пример приглашения командной строки.
django-admin.py — это скрипт, который создаст необходимую структуру директорий и файлы для нас. Теперь у твоего проекта должна быть следующая структура:
Примечание: в своей структуре директорий ты также увидишь ранее созданную нами директорию с виртуальным окружением.
manage.py — это другой скрипт, который помогает с управлением сайтом. С помощью него мы, помимо прочего, сможем запустить веб-сервер на твоем компьютере без установки дополнительных программ.
Файл settings.py содержит настройки для твоего веб-сайта.
Помнишь нашу аналогию с почтальоном? Файл urls.py содержит список шаблонов, по которым ориентируется urlresolver .
Давай пока забудем про остальные файлы — мы не будем их изменять. Только не удали их случайно!
Изменяем настройки
Давай внесём изменения в mysite/settings.py . Открой файл в текстовом редакторе, который ты выбрала ранее.
Примечание: помни, что settings.py — самый обычный файл. Ты можешь открыть его из своего редактора кода, используя меню «Файл -> Открыть». При этом ты увидишь обычное окно, в котором ты можешь перейти к своему файлу settings.py и выбрать его. Либо ты можешь открыть этот файл, перейдя в директорию проекта djangogirls на твоём рабочем столе и щёлкнув по нему правой кнопкой мыши; затем выбери свой редактор кода из предложенного списка. Важно выбрать именно редактор, поскольку у тебя могут быть установлены программы, которые откроют наш файл, но не позволят его изменить.
Было бы неплохо установить корректный часовой пояс на нашем сайте. Перейди к списку часовых поясов википедии и скопируй название своего часового пояса (TZ) (например, Europe/Moscow ).
В файле settings.py найди строку, содержащую TIME_ZONE , и измени её в соответствии со своим часовым поясом:
Код языка состоит из сокращённого названия языка, например en для английского или ru для русского, и кода страны, например, ru для России или ch для Швейцарии. Тебе понадобится эта настройка, если ты хочешь, чтобы все встроенные кнопки и уведомления от Django были на твоём языке. Таким образом, надпись на кнопке «Cancel» будет переведена на заданный тобой язык. Django поставляется с большим набором готовых переводов.
Измени язык, отредактировав следующую строку:
Нам также необходимо добавить в настройки информацию о расположении статических файлов (мы познакомимся со статическими файлами и CSS в следующих главах). Спустись в конец файла и после переменной STATIC_URL добавь новую — STATIC_ROOT :
Когда наcтройка DEBUG имеет значение True , а настройка ALLOWED_HOSTS пуста, имя хост твоего веб-сайта сверяется со списком [‘localhost’, ‘127.0.0.1’, ‘[::1]’] . Ни одно из значений не будет соответствовать имени хоста на PythonAnywhere при публикации нашего приложения, поэтому нам необходимо изменить следующую настройку:
Примечание: В случае если вы используете Chromebook, добавьте следующую строку в конец файла settings.py: MESSAGE_STORAGE = ‘django.contrib.messages.storage.session.SessionStorage’
Настройка базы данных
Существует множество различных баз данных, которые могут хранить данные для твоего сайта. Мы будем использовать стандартную — sqlite3 .
Она уже выбрана по умолчанию в файле mysite/settings.py :
Чтобы создать базу данных для нашего блога, набери в командной строке следующее: python manage.py migrate (мы должны быть в директории djangogirls , где расположен файл manage.py ). Если всё прошло успешно, то ты увидишь следующий результат:
Вот и всё! Пришло время запустить веб-сервер и посмотреть, работает ли наш веб-сайт!
Запуск веб-сервера
Ты должна быть в директории, где расположен файл manage.py (в нашем случае — djangogirls ). Запустим веб-сервер из командной строки: python manage.py runserver :
Если ты работаешь в Windows, и команда падает с ошибкой UnicodeDecodeError , используй вместо неё другую:
Теперь тебе нужно проверить, работает ли веб-сайт — открой браузер (Firefox, Chrome, Safari, Internet Explorer или любой другой) и набери следующий адрес:
Если ты используешь Chromebook или Cloud9, вместо этого нажми на ссылку во всплывающем окне, которая должна появиться в правом верхнем углу командного окна, в котором запущен веб сервер. Ссылка может выглядеть так:
Поздравляем! Ты только что создала свой первый веб-сайт и запустила его на веб-сервере! Ну не круто ли?
Пока работает веб-сервер, в терминале не будет приглашения для ввода команд. Ты всё ещё сможешь ввести текст, но не сможешь выполнить никакую другую команду. Это происходит потому, что сервер продолжает работу, «слушая» входящие запросы.
Мы рассматривали, как работают веб-сервера, в главе Как работает интернет.
Веб-сервер займёт командную строку, пока ты его не остановишь. Чтобы и дальше иметь возможность набирать команды, открой ещё одно окно терминала и активируй в нём виртуальное окружение. Чтобы остановить веб-сервер, перейди обратно в окно, в котором он работает, и нажми CTRL + C — кнопки Control и C вместе (в Windows может потребоваться нажать клавиши Ctrl + Break).
Готова к следующему шагу? Пришло время создать содержимое для нашего блога!
Django запуск сервера windows
После того как вы установили Python, Django и (возможно) сервер баз данных и библиотеку Python для него, вы можете сделать первый шаг в разработке веб приложения, создав проект .
Проектом является набор настроек для экземпляра Django, включая конфигурацию базы данных, параметров для Django и настроек приложения.
Если вы используете Django в первый раз, вам потребуется позаботиться об инициализации проекта. Создайте новый каталог в котором вы будете работать, например, /home/username/djcode/ .
Где должен располагаться этот каталог
Если вы раньше использовали PHP, вы вероятно размещали код в корневом каталоге веб сервера (например, в /var/www ). При использовании Django так делать не следует. Это плохая идея размещать код в таком месте, потому что есть риск доступа сторонних лиц к вашему коду. Это плохо.
Разместите ваш код в каком-нибудь каталоге вне корневого каталога веб сервера.
Перейдите в созданный каталог и выполните команду django-admin.py startproject mysite . Она создаст каталог mysite в текущем каталоге.
Замечание
Скрипт django-admin.py должен быть в вашем системном пути, если вы устанавливали Django с помощью утилиты setup.py .
Если же вы используете код из ствола, то он должен быть в каталоге djtrunk/django/bin . Так как вы часто будете использовать скрипт django-admin.py , рассмотрите его добавление в системный путь. На Unix вы можете воспользоваться символической ссылкой, например:
На Windows вам потребуется внести изменение в переменную среды PATH .
Если вы установили Django из пакета вашего дистрибутива Linux, то django-admin.py может называться просто django-admin .
Если вы увидите сообщение « permission denied [4] » при запуске django-admin.py startproject , вам потребуется изменить права доступа к файлу. Чтобы сделать это перейдите в каталог где установлен файл django-admin.py (например, в /usr/local/bin ) и выполните команду chmod +x django-admin.py .
Посмотрим на результаты работы команды:
Опишем назначение каждого файла:
__init__.py : Файл необходим для того, чтобы Python рассматривал данный каталог как пакет, т.е., как группу модулей. Это пустой файл и обычно вам не требуется добавлять что-либо в него.
manage.py : Это утилита командной строки, которая позволяет вам взаимодействовать с проектом различными методами. Наберите python manage.py help для получения информации о возможностях утилиты. Вы не должны изменять содержимое данного файла, он создан в данном каталоге в целях удобства.
settings.py : Настройки для текущего проекта Django. Посмотрите на содержимое файла, чтобы иметь представление о типах доступных параметров и их значениях по умолчанию.
urls.py : Описания URL для текущего проекта Django, так сказать « оглавление » для вашего сайта. На момент создания должен быть пустым (FIXME: по-моему авторы гонят.)
Несмотря на свой небольшой размер, эти файлы формируют работоспособное приложение Django.
Запуск сервера разработки
Для проверки правильности установки Django давайте запустим сервер разработки, чтобы посмотреть на наше приложение в действии.
Сервер разработки Django (также называемый « runserver » , по имени команды, которая его запускает) — это встроенный лёгкий веб сервер, который вы можете использовать в процессе разработки вашего сайта. Он включен в Django для того, чтобы вы могли быстро приступить к разработке вашего сайта без траты времени на конфигурирование вашего боевого веб сервера (т.е., Apache) раньше времени. Этот сервер разработки отслеживает изменения в вашем коде и автоматически перезагружает его, помогая видеть вносимые вами изменения без перезагрузки веб сервера.
Для запуска сервера перейдите в каталог mysite ( cd mysite ), если вы ещё не сделали этого, и выполните команду:
Вы увидите нечто подобное этому:
Команда запускает сервер локально на порту 8000. Сервер принимает только локальные соединения с вашего компьютера. Теперь он запущен, посетите страницу http://127.0.0.1:8000/ с помощью браузера. Вы увидите страницу « Welcome to Django [5] » . Всё работает!
Ещё об одном обязательно надо сказать. Несмотря на то, что сервер разработки очень удобен во время разработки, сопротивляйтесь искушению использовать этот сервер в боевом режиме. Этот сервер может обрабатывать только один запрос в единицу времени и он не проходил никакого аудита на предмет безопасности. Когда придёт время поднять ваш сайт, обратитесь к главе « Развёртывание Django » для информации о том, как установить туда проект Django.
Как изменить адрес и порт на котором работает сервер
По умолчанию, команда runserver запускает сервер разработки на порту 8000, принимая только локальные соединения. Если требуется изменить порт, его можно указать в аргументах командной строки:
Указав IP адрес, вы разрешаете веб серверу обрабатывать внешние подключения. Это особенно полезно, если требуется разделить разрабатываемый сайт с другими членами команды. IP адрес 0.0.0.0 указывает серверу принимать подключения со всех имеющихся сетевых интерфейсов: