В данной лекции создадим сайт на Django 3. Сайт будет включать в себя персональное портфолио с примерами проектов. И также на сайте будет свой блог, с возможностью для пользователей комментировать каждый пост блога. Посты будут разбиты по категориям, с возможностью сортировки постов по этим категориям.

Создадим папку с названием проекта, например my-portfolio. В этой папке нужно создать виртуальное окружение. Для этого воспользуемся командой: 

python -m venv venv

После чего в папке проекта будет создана папка с названием venv, в которой будет находиться отдельная копия python для конкретного проекта. Кстати, в качестве имени папки вы можете указать любое другое название, например my_venv.

Для того чтобы наш сайт выглядел красиво добавим в проект Bootstrap-стили.

Создадим приложение projects для нашего портфолио с помощью команды:

python manage.py startapp projects

Нам нужно создать 2 вида:

  • индексный - для вывода списка проектов на страницу;
  • детальный - для вывода полного описания конкретного проекта.

Мы почти закончили с приложением для портфолио и нам осталось создать 2 шаблона:

  • project_index - индексный;
  • project_detail - детальный.

Добавим на наш сайт блог. Блог будет состоять из 3 страниц:

  • blog_index - индексная страница со всеми записями блога;
  • blog_detail - детальная страница, с полным описанием записи блога;
  • blog_category - страница с записями блога выбранной категории. 

В прошлый раз мы создавали записи проектов в БД через командную строку, а для добавления постов воспользуемся админ-панелью Джанго. Для этого нужно сначало создать суперпользователя.

python manage.py createsuperuser

При создании суперпользователя укажите его логин, почту и пароль.

Теперь можно открыть админ-панель в браузере по адресу: localhost:8000/admin.

Нам нужно добавить 3 вида в файл views.py (папка приложения blog):

  • blog_index - индексная страница со всеми записями блога;
  • blog_detail - детальная страница, с полным описанием записи блога;
  • blog_category - страница с записями блога выбранной категории. 

Создадим новую папку templates в папке приложения blog. В ней создадим 3 файла: blog_category.html, blog_detail.html и blog_index.html.