После запуска доступ на локальной машине по адресу и порту: http://127.0.0.1:3333
Почтовые уведомления о сохранении, удалении постов, на которые подписан пользователь, грузятся в: tmp/email-messages
При запуске production
-версии включается более защищённый режим, отключается режим дебага, код грузится, только если проходит проверку на flake8, работа в режиме пользователя, а не root
sudo groupadd docker
sudo usermod -aG docker username
newgrp docker
chmod +x ./blog/entrypoint.sh && chmod +x ./blog/entrypoint.prod.sh
docker-compose -f docker-compose.prod.yml up -d --build
docker-compose -f docker-compose.prod.yml exec web python manage.py migrate --noinput
docker-compose -f docker-compose.prod.yml exec web python manage.py collectstatic --no-input --clear
docker-compose -f docker-compose.prod.yml exec web python manage.py fill_db
При запуске python manage.py fill_db
генерируются суперюзер radif
,
обычные пользователи Kolya
, Alyosha
.
Пароль у админа и пользователей qwertytrewq
.
Так же происходит автозаполнение таблицы постов с привязкой к этим
пользователям
chmod +x ./blog/entrypoint.sh && chmod +x ./blog/entrypoint.prod.sh
docker-compose up -d --build
docker-compose build
docker-compose up
docker image ls -a && docker container ls -a && docker volume ls
docker container prune && docker image prune && docker volume prune
docker-compose down -v docker-compose -f docker-compose.prod.yml down -v
docker-compose logs -f
docker exec -it CONTAINER ID bash
docker volume inspect django-on-docker_postgres_data
docker rmi CONTAINER ID
,docker rmi -f CONTAINER ID
docker image rm name_or_id
,docker container rm name_or_id
,docker volume rm name_or_id
docker stop CONTAINER ID
docker start CONTAINER ID
docker restart CONTAINER ID
docker ps
,docker ps -a
docker images
docker-compose exec web python manage.py flush --no-input
docker-compose exec web python manage.py makemigrations --no-input
docker-compose exec web python manage.py migrate
docker-compose exec db psql --username=admin --dbname=blog_db
Реализовать бэкенд с минимальным фронтендом (можно на голом HTML):
Имеется база стандартных пользователей Django (добавляются через админку, регистрацию делать не надо). У каждого пользователя есть персональный блог. Новые создавать он не может. Пост в блоге — элементарная запись с заголовком, текстом и временем создания. Пользователь может подписываться (отписываться) на блоги других пользователей (любое количество). У пользователя есть персональная лента новостей, в которой в обратном хронологическом порядке выводятся посты из блогов, на которые он подписан. Пользователь может помечать посты в ленте прочитанными. При добавлении/удалении подписки содержание ленты меняется (при удалении подписки пометки о "прочитанности" сохранять не нужно). При добавлении поста в ленту — подписчики получают почтовое уведомление со ссылкой на новый пост. Изменение содержания лент подписчиков (и рассылка уведомлений) должно происходить как при стандартной публикации поста пользователем через интерфейс сайта, так при добавлении/удалении поста через админку.
Техника: Python 3.x, Django > 3.х, Postgresql или SQLite. Проект должен быть на гитхабе и отражать процесс разработки. Код максимально приближенный к боевому (насколько получится). Реализовать на Class-based views.
Проект необходимо упаковать в докер. Запускать через docker-compose.
В проекте должно быть README с описанием запуска проекта.