Создадим страницу сайта, на который будет текст "Привет, Мир!".
1. Немного теории
Часто сайты пишутся не на HTML/CSS/JS, а в виде web-программы и базы данных. База данных сайта может содержать наборы текстов, картинок, видео, аудио и прочих данных, которые мы видим открывая сайт. Их место на странице, формат текста, размеры картинок и прочее содержится в коде программы. Код программы может быть написан на Java, JavaScript, C#, Python и других языках программирования. Базы данных также могут быть организованны разными способами и при помощи разных инструментов: админ-панель, в коде web-программы, специальные программы для работы с базами данных и т.д.
Сервер проекта запускается из файла manage.py. Запрос от пользователя направляется сервером в файл приложения проекта urls.py. В файле urls.py находится список всех страниц сайта. Если запрашиваемой страницы нет в списке, то получаем ошибку 404 - страница не существует. Если страница есть, то выполняется функция её отображения, которая находится в файле приложения проекта views.py. Функция отображения собирает вместе шаблон страницы и его данные. Шаблон находится в папке Templates, а остальное получено из базы данных через файл приложения models.py. В нём находятся модели запроса данных из базы.
Папка проекта Templates и приложение проекта должны быть вписаны в соответствующие разделы файла settings.py. В нём содержатся различные настройки проекта. Это позволит связать данные и шаблон страницы воедино.
2. Подготовка
Вам необходимо установить язык программирования Python и среду разработки для работы с ним, а также настроить её. Подробнее об этом написано в статье "Создание HelloWorld.exe на Python". В данной статье используется среда разработки Visual Studio Code.
3. Создание сайта
3.1. Создаём папку для нового проекта и устанавливаем фреймворк
Добавим папку для нового проекта через меню: File => Add Folder to Workspace. Выбираем заранее созданную папку MySite на рабочем столе и нажимаем кнопку Add. Ваш проект может быть в любом месте с нужным для вас именем.
Через меню откроем терминал: Terminal => New Terminal. В списке указываем создание терминала для проекта MySite. Через pip installer установим фреймворк с помощью команды в терминале "pip install django".
3.2. Создаём проект с помощью фреймворка Django
В терминале указываем команду "django-admin startproject projectMySite". В Explorer видно, что в каталоге MySite появилась папка projectMySite. В ней находится файл manage.py, необходимый для запуска сервера, и папка с таким же названием как и у проекта projectMySite с различными вспомогательными файлами.
3.3. Создаём и регистрируем приложение проекта
Приложение является модулем проекта для работы с его базами данных, шаблонами. Этот модуль также отображает страницы. Приложений может быть несколько в проекте. В терминале перейдём в папку с проектом после команды "cd projectMySite" и создадим приложение AppMySite после ввода команды "python manage.py startapp AppMySite". Добавилась папка AppMySite.
Зарегистрируем приложение в файле проекта settings.py. В разделе файла INSTALLED_ APPS в квадратные скобки добавить новую строку в одиночных кавычках " 'AppMySite',". Сохранить изменения в файле сочетанием Ctrl+S.
3.4. Создаём и регистрируем папку шаблонов страниц
Добавляем папку Templates в корень проекта, выбрав соответствующий пункт контекстного меню папки projectMySite.
Также через контекстное меню к папке Templates создаём файл Index.html.
В файле шаблона напишем "html" и из выпавшего списка выберем "html:5".
Между тегами <body></body> добавим заголовок <h1>Привет, Мир!</h1>. Сохраним изменения в файле сочетанием Ctrl+S.
В разделе TEMPLATES файла проекта settings.py добавить в квадратные скобки 'DIRS' : ['projectMySite/Templates'], зарегистрировав тем самым папку шаблонов страниц. Сохраним изменения в файле сочетанием Ctrl+S.
3.5. Создаём функцию отображения страницы
Выбираем файл views.py приложения AppMySite и добавляем функцию отображения страницы сайта "def index_page(request): return render(request, 'Index.html')". Сохраним изменения в файле сочетанием Ctrl+S.
Выбираем файл urls.py и импортируем функцию отображения страницы до раздела urlpatterns "from AppMySite.views import index_page" и добавим ссылку на эту функцию в этом разделе добавив строчку "path('', index_page),".
3.6. Создаём и настраиваем локальный сервер для сайта
В папке MySite перейдём в папку проекта в терминале "cd projectMySite" и запускаем в этой папке сервер командой "python manage.py runserver". Если кликнуть с нажатой клавишей Ctrl по ссылке в терминале проекта в VS Code, то в браузере откроется созданный сайт. Для остановки сервера нужно нажать сочетание клавиш Ctrl+C.
Создать сайт в Python на Django непросто, но легче создания сайтов вручную через HTML/CSS/JS. Писать "Привет, Мир!" на Django равносильно пальбе из пушки по воробьям, но вы освоите общие принципы для первого шага в изучении этого фреймворка.
Следующие статьи:
1. Создание сайта в Python. Часть 2. Бэкенд. Автоматизация запуска локального сервера на Django.
2. Создание сайта в Python. Часть 3. Бэкенд. Работа с базой данных и панелью администратора на Django.
3. Создание сайта в Python. Часть 4. Фронтенд. Работа с шаблонами на Django