Домашнее задание к шестой лекции

1. Блог

Надо заново реализовать ту же функциональность, что и в задачах 1-3 challenges_4.

На сайте можно создавать, удалять и просматривать статьи. Все действия доступны анонимному пользователю.

На Django (1.8). База данных - sqlite (лёгкий уровень), PostgreSQL (сложный уровень).

Инструкции про то, как развернуть проект, накатить схему БД и необходимые credentials должны быть приведены в README.

NOTICE: Django - большой фреймворк и разобраться в том, как им пользоваться даже в простых случаях может быть не просто.

У Django есть классный официальный туториал, советую начать с него. Серьёзно, пройдите его. Полностью.

2. Редактирование, поиск и пагинация

К сайту из п.1 добавить возможность поиска по статьям, редактирование статей.

При выводе списка статей выводить пагинированный список (с возможностью пагинации).

3. Авторизация

Добавить возможность авторизации за указанного пользователя.

У каждой статьи есть пользователь-автор и редактировать/удалять её может только он.

При создании статьи пользователь, который её создал, считается её автором.

Регистрацию делать не нужно, но должна быть возможность создать пользователя через админку.

4. Внешний вид

Самое время сделать так, чтобы сайт выглядел лучше. Ну, лучше, чем он выглядит без оформления.

Для этого будет нужно заняться стилизацией созданной вёрстки.

Стили можно делать самому, можно взять готовый фреймворк для стилизации.

Например, Twitter Bootstrap (я его уже советовал).

5. Ревью-лист

Есть такая полезная практика - держать под рукой список технических вопросов, которые обычно задают на собеседованиях, например, web-dev junior-питонистам.

В этом задании вам представляется возможность коллективно составить такой список.

Задача: найти пять технических вопросов, которые по вашему мнению могут задать на собеседовании на соответствующую должность. Найти на них ответы. Добавить всё в общий список. Естественно, проверить, что этих (или похожих) вопросов там нет - дубли нам ни к чему.

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

Примерный список категорий: Python, небольшая задача, что-то про алгоритмы, тестирование, написание кода, работу в команде, web, git, БД.

IMPORTANT: это очевидно, но я лишний раз обращу внимание на то, что труд коллег по цеху нужно уважать и беречь. Аккуратнее с тем, что там уже есть, не удаляйте/исправляйся. А вот комментировать можно.

← к материалам курса