Нашли опечатку?

Выделите её мышкой и нажмите Enter

Ctrl-Enter
Выполнено:
92 1 199 25
Всего пользователей: 1249

Внимание!

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

Новый проект

После того как вы установили 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 вы можете воспользоваться символической ссылкой, например:

sudo ln -s /path/to/django/bin/django-admin.py \
           /usr/local/bin/django-admin.py

На 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.

Посмотрим на результаты работы команды:

mysite/
    __init__.py
    manage.py
    settings.py
    urls.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), если вы ещё не сделали этого, и выполните команду:

python manage.py runserver

Вы увидите нечто подобное этому:

Validating models...
0 errors found.

Django version 1.0, using settings 'mysite.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Команда запускает сервер локально на порту 8000. Сервер принимает только локальные соединения с вашего компьютера. Теперь он запущен, посетите страницу http://127.0.0.1:8000/ с помощью браузера. Вы увидите страницу «Welcome to Django[5]». Всё работает!

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

Как изменить адрес и порт на котором работает сервер

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

python manage.py runserver 8000

Указав IP адрес, вы разрешаете веб серверу обрабатывать внешние подключения. Это особенно полезно, если требуется разделить разрабатываемый сайт с другими членами команды. IP адрес 0.0.0.0 указывает серверу принимать подключения со всех имеющихся сетевых интерфейсов:

python manage.py runserver 0.0.0.0:8000

Когда вы сделаете это, другие компьютеры в вашей локальной сети смогут получить доступ к вашему сайту на Django по IP адресу его компьютера, например, http://192.168.1.103:8000/. Следует отметить, что вам потребуется посмотреть свои сетевые настройки для определения вашего IP адреса в локальной сети. Пользователи Unix могут воспользоваться утилитой ifconfig. Пользователи Windows — утилитой ipconfig.

После запуска сервера, посетите http://127.0.0.1:8000/ с помощью вашего веб браузера. Вы увидите страницу «Welcome to Django». Оно работает!



[4] Доступ запрещён.

[5] Добро пожаловать в Django.

akajedi
akajedi 8 месяцев, 1 неделя прошло
Ответ | Ссылка

Парни, спасибо за труды. Сегодня первый раз знакомлюсь с Django. Установил с git версию root@star:/usr/lib/python2.7/dist-packages# python -c "import django; print django.VERSION;"
(1, 5, 0, 'alpha', 0)

я так понял структура проекта поменялась? потому как у меня в результате выполнения команды
/home/djcode/Django-1.4-446/django/bin/django-admin.py startproject mysite
получилась такая структура:

└── mysite
├── manage.py
└── mysite
├── __init__.py
├── __init__.pyc
├── settings.py
├── settings.pyc
├── urls.py
├── urls.pyc
├── wsgi.py
└── wsgi.pyc

alerion
alerion 8 месяцев, 1 неделя прошло
Ответ | Ссылка

Ответ на akajedi
Парни, спасибо за труды. Сегодня первый раз знакомлюсь с Django. Установил с git версию root@star:/usr/lib/python2.7/dist-packages# python -c "import django; print django.VERSION;"
(1, 5, 0, 'alpha', 0)

я так понял структура проекта поменялась? потому как у меня в результате выполнения команды
/home/djcode/Django-1.4-446/django/bin/django-admin.py startproject mysite
получилась такая структура:

└── mysite
├── manage.py
└── mysite
├── __init__.py
├── __init__.pyc
├── settings.py
├── settings.pyc
├── urls.py
├── urls.pyc
├── wsgi.py
└── wsgi.pyc

Вопросы задавайте на форуме. Структура поменялась, читайте документацию. Ну и 'alpha' не используйте, если вы конечно не планируете искать баги в нестабильной версии.

dancef
dancef 1 неделя прошло
Ответ | Ссылка

Данная статья уже не актуальна и вообще не работает даже на версии Django 1.3
и Вообще сначала нужно устанавливать PIP и джангу надо ставить через PIP.
Потом создается проект python manage.py startproject myp
а потом еще создается первое приложение python manage.py startapp my_app

только тогда появляется структура соответствующая офф докам

mysite
├── manage.py
└── mysite
├── __init__.py
├── __init__.pyc
├── settings.py
├── settings.pyc
├── urls.py
├── urls.pyc
├── wsgi.py
└── wsgi.pyc

dancef
dancef 1 неделя прошло
Ответ | Ссылка

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