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