Найти в Дзене
Мысли вслух

Создание сайта в Python на Django. Часть 1. Бэкенд. Страница "Привет, Мир!"

Создадим страницу сайта, на который будет текст "Привет, Мир!". 1. Немного теории Часто сайты пишутся не на HTML/CSS/JS, а в виде web-программы и базы данных. База данных сайта может содержать наборы текстов, картинок, видео, аудио и прочих данных, которые мы видим открывая сайт. Их место на странице, формат текста, размеры картинок и прочее содержится в коде программы. Код программы может быть написан на Java, JavaScript, C#, Python и других языках программирования. Базы данных также могут быть организованны разными способами и при помощи разных инструментов: админ-панель, в коде web-программы, специальные программы для работы с базами данных и т.д. Сервер проекта запускается из файла manage.py. Запрос от пользователя направляется сервером в файл приложения проекта urls.py. В файле urls.py находится список всех страниц сайта. Если запрашиваемой страницы нет в списке, то получаем ошибку 404 - страница не существует. Если страница есть, то выполняется функция её отображения, которая на

Создадим страницу сайта, на который будет текст "Привет, Мир!".

1. Немного теории

Часто сайты пишутся не на HTML/CSS/JS, а в виде web-программы и базы данных. База данных сайта может содержать наборы текстов, картинок, видео, аудио и прочих данных, которые мы видим открывая сайт. Их место на странице, формат текста, размеры картинок и прочее содержится в коде программы. Код программы может быть написан на Java, JavaScript, C#, Python и других языках программирования. Базы данных также могут быть организованны разными способами и при помощи разных инструментов: админ-панель, в коде web-программы, специальные программы для работы с базами данных и т.д.

Упрощённая организация работы сайта построенного на фреймворке Django
Упрощённая организация работы сайта построенного на фреймворке Django

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

Создание проекта с помощью фреймворка Django
Создание проекта с помощью фреймворка Django

3.3. Создаём и регистрируем приложение проекта

Приложение является модулем проекта для работы с его базами данных, шаблонами. Этот модуль также отображает страницы. Приложений может быть несколько в проекте. В терминале перейдём в папку с проектом после команды "cd projectMySite" и создадим приложение AppMySite после ввода команды "python manage.py startapp AppMySite". Добавилась папка AppMySite.

Создание приложения проекта
Создание приложения проекта

Зарегистрируем приложение в файле проекта settings.py. В разделе файла INSTALLED_ APPS в квадратные скобки добавить новую строку в одиночных кавычках " 'AppMySite',". Сохранить изменения в файле сочетанием Ctrl+S.

Регистрация приложения AppMySite в проекте projectMySite
Регистрация приложения AppMySite в проекте projectMySite

3.4. Создаём и регистрируем папку шаблонов страниц

Добавляем папку Templates в корень проекта, выбрав соответствующий пункт контекстного меню папки projectMySite.

Меню папки проекта
Меню папки проекта
Создаём папку шаблонов Templates
Создаём папку шаблонов Templates

Также через контекстное меню к папке Templates создаём файл Index.html.

Меню папки Templates
Меню папки Templates
Создание файла шаблона Index.html
Создание файла шаблона Index.html

В файле шаблона напишем "html" и из выпавшего списка выберем "html:5".

Выбор стандартного шаблона страницы html:5
Выбор стандартного шаблона страницы 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
Созданный сайт на Python с помощью фреймворка Django

Создать сайт в Python на Django непросто, но легче создания сайтов вручную через HTML/CSS/JS. Писать "Привет, Мир!" на Django равносильно пальбе из пушки по воробьям, но вы освоите общие принципы для первого шага в изучении этого фреймворка.

Следующие статьи:

1. Создание сайта в Python. Часть 2. Бэкенд. Автоматизация запуска локального сервера на Django.

2. Создание сайта в Python. Часть 3. Бэкенд. Работа с базой данных и панелью администратора на Django.

3. Создание сайта в Python. Часть 4. Фронтенд. Работа с шаблонами на Django