Создание проекта в Django
Навигация по проекту |
|
Справочник моделей Django |
Содержание страницы: |
1. Создание и активация виртуальной среды ( virtualenv ) |
1. Создание и активация виртуальной среды ( virtualenv )
Для разработки на Python рекомендуется сначала создать виртуальную среду для разработки ( virtualenv ). Виртуальная среда - это подраздел системы, в которой устанавливаются пакеты, не зависимо от других пакетов Python. Одним из достоинств виртуальной среды является то, что для установки различных Python пакетов пользователь не обязан иметь права администратора.
Создайте каталог с любым именем для вашего проекта. Перейдите в этот каталог в терминальном режиме. Для удобства я назвал свой проект my_site. Следующей командой создайте виртуальную среду:
my_site>python -m venv ms_env
my_site>
С помощью команды python -m venv создается виртуальная среда с именем ms_env. После создания её необходимо активировать. Для активации виртуальной среды в системе Windows необходима следующая команда:
my_site>ms_env\Scripts\activate
(ms_env) my_site>
При работе в консоли появится имя активированной виртуальной среды в скобках (ms_env). В будущем при активации виртуальной среды любая библиотека Python будет сохранятся в папке ms_env вашего проекта.
Для деактивации виртуальной среды используете команду deactivate:
(ms_env) my_site>deactivate
my_site>
В случае закрытия терминального окна виртуальная среда становится не активной.
2. Установка Django
После создания и активации виртуальной среды установите Django. Установить Django проще всего с помощью менеджера пакетов pip. Pip уже установлен в Python 3.6 и выше.
(ms_env) my_site>pip install django
Collecting django
Downloading Django-3.2.9-py3-none-any.whl (7.9 MB)
|████████████████████████████████| 7.9 MB 656 kB/s
Collecting sqlparse>=0.2.2
Downloading sqlparse-0.4.2-py3-none-any.whl (42 kB)
|████████████████████████████████| 42 kB 203 kB/s
Collecting pytz
Downloading pytz-2021.3-py2.py3-none-any.whl (503 kB)
|████████████████████████████████| 503 kB 3.3 MB/s
Collecting asgiref<4,>=3.3.2
Downloading asgiref-3.4.1-py3-none-any.whl (25 kB)
Installing collected packages: sqlparse, pytz, asgiref, django
Successfully installed asgiref-3.4.1 django-3.2.9 pytz-2021.3 sqlparse-0.4.2
(ms_env) my_site>
Так как вы работаете в виртуальной среде, команда pip install django работает одинаково во всех операционных системах.
3. Создание проекта Django
Для создания проекта Django предоставляет команду, которая создает базовую структуру файлов и каталогов:
(ms_env) my_site>django-admin startproject my_site
(ms_env) my_site>
С помощью команды django-admin startproject my_site мы создали Django-проект с названием my_site.
Для исключения конфликта имен не используйте названия для ваших проектов, которые совпадают со стандартными пакетами Python и Django.
Давайте посмотрим на структуру сгенерированного проекта:
my_site/
manage.py
my_site/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
Каждый из файлов имеет свое значение:
- manage.py - утилита командной строки, используемая для управления проектом
- my_site/ - это внутренняя папка нашего проекта, которая совпадает с названием проекта и содержит файлы:
- __init__.py - пустой файл, который сообщает Python о том, что my_site является Python-пакетом
- settings.py - содержит конфигурацию нашего проекта и в нем уже заданы базовые настройки
- urls.py - здесь будут хранится шаблоны адресов, какие страницы строить на запросы браузера
- asgi.py - точка входа для ASGI-совместимых веб-серверов для обслуживания вашего проекта
- wsgi.py - конфигурация для запуска проекта как WSGI - приложения
Не удаляйте и не изменяйте названия этих файлов в вашем проекте.
4. Создание базы данных
Django хранит информацию в базе данных, относящейся к вашему проекту. Для работы с ней её необходимо создать. По умолчанию Django использует СУБД SQLite. Введите команду python manage.py migrate находясь в виртуальной среде для создания базы данных. У меня файл manage.py находится внутри папки my_site, поэтому в начале мне нужно перейти в эту папку командой cd (cd my_site).
(ms_env) my_site>cd my_site
(ms_env) my_site\my_site>python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
.........
Applying auth.0011_update_proxy_permissions... OK
Applying auth.0012_alter_user_first_name_max_length... OK
Applying sessions.0001_initial... OK
(ms_env) my_site\my_site>
Каждое изменение в базе данных называется миграцией. В Django встроена подсистема миграции, которая отслеживает изменения моделей. При первом выполнение команды migrate Django создает новую базу данных за вас и в вашем проекте появится файл db.sqlite3.
5. Запуск сервера для разработки
В состав Django входит отладочный веб-сервер для быстрого запуска нашего проекта. Когда сервер запущен, Django начинает отслеживать все наши изменения в коде и автоматически перезапускает его. Запустить сервер разработки можно с помощью команды runserver:
(ms_env) my_site\my_site>python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
November 26, 2021 - 10:09:56
Django version 3.2.9, using settings 'my_site.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
Теперь откройте браузер и введите http://127.0.0.1:8000/. Вы должны увидеть информацию что ваш проект успешно запущен и работает как на рисунке ниже:
Для завершения работы сервера нажмите Ctrl+C в терминале или просто закройте его.
6. Настройки проекта Django
Основные настройки находятся в файле settings.py. Рассмотрим основные настройки, который доступны вам сразу после создания проекта:
- DEBUG = True - Булевое значение, которое включает и отключает режим отладки проекта. При создание проекта DEBUG = True, значит сайт находится в отладочном режиме и Django будет отображать подробные страницы с вашими ошибками. Когда вы будете устанавливать приложение в "боевом" режиме, нужно установить значение на False. Никогда не публикуйте проект с включенным режимом отладки ( DEBUG = True ), так как пользователям будут доступны секретные данные конфигурации приложения.
- ALLOWED_HOSTS = [ ] - не используется при включенной отладке и запуске тестов. Но когда вы развернете приложение и установите флаг DEBUG = False, необходимо будет добавить домен сайта в эту настройку.
- INSTALLED_APPS - список зарегистрированных приложений. Все приложения, которые вы будете писать в будущем, будут добавляться в этот список. По умолчанию Django сразу подключает такие приложения:
- 'django.contrib.admin' - административный веб-сайт Django.
- 'django.contrib.auth' - встроенная подсистема аутентификации.
- 'django.contrib.contenttypes' - подсистема для работы с типами объектов системы. Хранит список всех моделей, объявленных во всех приложения проекта.
- 'django.contrib.sessions' - подсистема сессий.
- 'django.contrib.messages' - подсистема сообщений, выводит всплывающие сообщения.
- 'django.contrib.staticfiles' - подсистема обрабатывает статистические файлы.
- MIDDLEWARE = [ ] - список подключенных промежуточных слоев
- ROOT_URLCONF = 'my_site.urls' - указывает на Python-модуль, который содержит корневые шаблоны URL'ов приложения.
- TEMPLATES = [ ] - все настройки проекта, касающиеся шаблонов и шаблонизатора.
- DATABASES = { } - словарь, содержащий настройки для всех баз данных.
- LANGUAGE_CODE = 'en-us' - определяет код языка по умолчанию для Django-сайта.
Для удобства разработки изменим код языка для вывода системных сообщений и страниц административного сайта на 'ru'. Перейдите в файл settings.py и найдите строку:
LANGUAGE_CODE = 'en-us'
Исправьте 'en-us' на 'ru'
LANGUAGE_CODE = 'ru'
Перезапустив сервер, вы увидите сообщение на русском языке:
В процессе разработки все основные настройки будут рассмотрены.
Далее: Создание моделей в Django для онлайн-магазина