Django урок создания блога #1 — старт проекта, аккаунт админа, обработка url-запросов, шаблоны

Я расскажу о там, как создать простой блог на фреймворке Django. Статья будет полезна новичкам в сфере Веб-программирования для того, чтобы разобраться в принципе работы и сути django. И так, поехали!

Проект написан с использованием:

Python 3.6.3 — высокоуровневый язык программирования.

Django 2.0.2 — фреймворк для веб-приложений.

Atom — текстовый редактор c поддержкой плагинов

Установка Python

Перед началом работы вам необходимо установить Python  для дальнейшей работы с django. Для этого переходим на официальный сайт, скачиваем дистрибутив и устанавливаем его (как обычное приложение), поставив галочку напротив «Add Python  to the PATH» (Добавить Python к системной переменной PATH). Если все сделано верно, то прописав в консоли (WIN + R > cmd) python, вы увидите следующее:

 

 

Для выхода пропишите exit().

 

Установка Django

 

Django установим с помощью менеджера пакетов Python — pip:

 

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

Для начала создадим папку для проекта в любом удобном месте и назовем ее «project». Далее Скопируем адрес этой папки и откроем консоль (WIN + R > cmd).

 

 

В консоли перейдем в созданную ранее папку:

Далее создадим проект с произвольным именем «myProject»

И перейдем в папку myProject

 

 

Откроем папку «myProject» с помощью редактора Atom.

 

 

 

Стандартный проект django создан! Давайте запустим его:

 

 

Откроем страницу по адресу 127.0.0.1:8000

 

 

 

Ура! Все работает. Теперь создадим аккаунт администратора, с помощью которого вы сможете добавлять, редактировать и удалять статьи (это конечно не все возможности админки django, но пока их будет достаточно).

Завершим работу запущенного сервера:

Для начала необходимо с миграциями. Миграции в django используются для переноса изменений в моделях на структуру базы данных. В нашем случае в базу данных необходимо занести таблицы для хранения данных админа и некоторые другие.

Введем команду:

 

 

И далее создадим суперюзера

 

Нам будет предложено ввести логин, e-mail почту и пароль.

Логин для удобства введем admin, почту можно не вводить и пароль (мин. 8 символов). Будьте внимательны, вводимые символы пароля в консоли никак не отображаются (в целях безопасности).

 

 

 

Попробуем залогиниться в админ панели. Для этого запустим сервер:

Зайдем на страницу по адресу 127.0.0.1:8000/admin. Вводим логин и пароль от админки и жмем «Log in».

 

 

В итоге откроется админ панель:

 

 

Все работает, стартовый проект создан и создан аккаунт администратора. Сейчас перейдем к созданию Веб-приложения в django. В нашем случае Веб-приложение — это блог, который имеет свой собственный функционал (вывод всех статей и вывод отдельной).

Для этого завершим работу сервера (Ctrl + C) и пропишем следующую команду:

Где «blog» — это произвольное название приложения. В итоге в директории project/myproject появился новый каталог с именем «blog» и некоторыми .py файлами.

 

 

 

Далее нужно дать понять Django, что нужно использовать в работе наше новое приложение «blog». Для этого в файле settings.py с расположением project/myProject/myProject/settings.py изменяем настройку INSTALLED_APPS следующим образом:

 

Поработаем с обработкой url-запросов. Нам необходимо, чтобы при запросе 127.0.0.1:8000 открывалась главная страница со списком всех статей.

Отредактируем файл project/myProject/myProject/urls.py следующим образом:

Если говорить простым языком, то Django сравнивает url-запрос с данными в  urlpatterns. Т.е. открыв страницу с адресом 127.0.0.1:8000/ django выполнит строку path(», include(‘blog.urls’)). На основе которой будет «читать» файл по адресу project/myProject/blog/urls.py. Создадим и отредактируем этот файл:

Здесь идет переход в файл views.py, в котором используется функция post_list.

Файл project/myProject/blog/views.py

С помощью функции render выполняем шаблон post_list.html. Для этого создаем в папке project/myProject новую с именем «templates». В этой папке будут храниться все требуемые шаблоны страниц (главная, страница ошибки 404, шаблон подробного просмотра статьи).

И редактируем в файле project/myProject/myProject/settings.py настройку TEMPLATES:

 

В созданной папке templates создаем файл base.html:

Это базовый шаблон, который будет дополнятся другими.

Создадим в папке project/myProject/templates новую папку partial, в которой и будут находится .html файлы, расширяющие базовый.

В папке partial создадим файл home.html:

При обращении к файлу home.html содержимое блоков head и body в файле base.html заменится содержимым файла home.html. такая система организации шаблонов добавляет динамику и в разы упрощает работу.

 

Продолжение туториала ожидайте во 2 части