ОПИСАНИЕ:
My blog - это учебный Pet-проект по ведению блога, созданию постов и комментариев, в рамках изучения чистого Django. В проекте реализован следующий функционал:
- модели, представления, пути и шаблоны постов и комментариев
- система тегирования django-taggit
- рекомендации схожих постов по тегам (сложный QuerySet запрос)
- кастомный менеджер модели published
- кастомные шаблонные теги и фильтр (markdown)
- пагинация списка постов в функции и классе представлении
- отправка постов по электронной почте через smtp-сервер Google
- карта сайта и новостная RSS-лента
- полнотекстовый поисковый механизм PostgreSQL (классы SearchVector, SearchQuery, SearchRank, TrigramSimilarity)
СТЕК ТЕХНОЛОГИЙ: Python 3.12, Django 4.2.7, Postgresql 15
ЛОКАЛЬНАЯ УСТАНОВКА (для Windows):
- Клонируй проект и перейди в него:
git clone git@github.com:smaspb17/my_blog.git
сd my_blog
- Создай виртуальное окружение для проекта. Это позволит изолировать проект от системных зависимостей и установленных библиотек:
python -m venv venv
- Активируй виртуальное окружение командой:
venv/Scripts/activate
- Установи необходимые зависимости:
pip install -r requirements.txt
- При необходимости обнови пакетный менеджер pip:
python.exe -m pip install --upgrade pip
- Создай пользователя и базу данных используя оболочку psql:
psql -U postgres
CREATE USER blog WITH PASSWORD 'your_password';
CREATE DATABASE blog OWNER blog ENCODING 'UTF8';
-
Создай файл .env (в контейнере проекта), а также приложение в любом smtp-сервисе, например в Google (https://myaccount.google.com), и заполни его переменными, указанными в файле example.env.
-
Перейди в пакет проекта (
my_blog/my_blog
, там где находится файл manage.py) и выполни миграции:
cd my_blog/
python manage.py makemigrations
python manage.py migrate
- Создай суперпользователя:
python manage.py createsuperuser
- Запусти проект на локальном сервере:
python manage.py runserver
- Перейди по ссылке в браузере:
http://127.0.0.1:8000/blog/
Теперь ты можешь использовать проект на своём компьютере. Если ты хочешь остановить проект, нажми Ctrl+C в терминале, а затем деактивируй виртуальное окружение командой:
deactivate
АВТОР: Шайбаков Марат
ЛИЦЕНЗИЯ: Apache License 2.0
КОНТАКТЫ: smaspb17@yandex.ru