GoIT, Python WEB, Homework number 12. FastAPI. PostgreSQL. Docker. REST API. ORM SQLAlchemy. Pydantic. Bootstraps CSS. Jinga. Alembic. OAuth2. JWT. Redis. Cloudinary. Limits
У цьому домашньому завданні ми продовжуємо доопрацьовувати застосунок REST API із домашнього завдання 12.
1.1. Реалізуйте механізм верифікації електронної пошти зареєстрованого користувача;
1.2. Обмежуйте кількість запитів до своїх маршрутів контактів. Обов’язково обмежте швидкість - створення контактів для користувача;
1.3. Увімкніть CORS для свого REST API;
1.4. Реалізуйте можливість оновлення аватара користувача. Використовуйте сервіс Cloudinary;
- Усі змінні середовища повинні зберігатися у файлі .env. Всередині коду не повинно бути конфіденційних даних у «чистому» вигляді;
- Для запуску всіх сервісів і баз даних у застосунку використовується Docker Compose;
1.5. Реалізуйте механізм кешування за допомогою бази даних Redis. Виконайте кешування поточного користувача під час авторизації;
1.6. Реалізуйте механізм скидання пароля для застосунку REST API;
У цьому домашньому завданні необхідно доопрацювати застосунок Django із домашнього завдання 10.
2.1. Реалізуйте механізм скидання пароля для зареєстрованого користувача;
2.2. Усі змінні середовища повинні зберігатися у файлі .env та використовуватися у файлі settings.py
На основі прикладів у теці doc\dot-env-example створити файли з Вашими індивідуальними даними:
- .env (визначає APP_ENV що визначає поточний робочий файл є prod, dev)
- .env-dev (Налаштування для dev)
- .env-prod (Налаштування для prod)
Виконати скрипт:
cd .\scripts
docker_run_docker-compose.cmd
або
docker-compose --env-file .env-prod up -d
Docker Hub url: https://hub.docker.com/r/lexxai/web_hw13
Виконати скрипт:
cd .\scripts
docker_run_db_compose.cmd
або
docker compose --env-file .env-prod --file docker-compose-db.yml up -d
cd .\hw13
alembic upgrade head
Виконати скрипт:
cd .\scripts
runserver.cmd
або
cd .\hw13
uvicorn main:app --reload --port 9000
або
cd .\hw13
python .\main.py
Відкрити сторінку браузера http://localhost:9000
FastAPI - Swagger UI
JavaScript easy client

Спроба зайти, без підтвердження пошти

Підтвердження за клац на посилання з листа

Спроба зайти, після підтвердження пошти

CORS ORIGIN ALLOW http://localhost:3001

CORS ORIGIN DENY FOR http://localhost:3002

CORS ORIGIN DENY FOR http://localhost:3002

CORS ORIGIN ALLOW http://localhost:3002

CORS ORIGIN ALLOWED FOR http://localhost:3002

Upload new avatar to Cloudinary
![]()
Download link of avatar from Cloudinary
![]()
Updated link of avatar from Cloudinary on user profile
![]()
1.5. Механізм кешування за допомогою бази даних Redis. Кешування поточного користувача під час авторизації.
Проєкт виконано за цим посиланням:
https://github.com/lexxai/goit_python_web_hw_10/tree/addon-hw13
(prepend) Django - https://github.com/lexxai/goit_python_web_django_lect_02_notes/tree/reset_password















