Найти тему
Мысли вслух

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

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

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

Наука
7 млн интересуются