Навигация по курсу:
Мы продолжаем создавать создавать сайт с помощью python и фреймворка FastAPI.
Помните цикл запрос-ответ в предыдущем посте? Хорошо, давайте исправим. Схема используется для проверки данных, которые мы получаем, а также для переформатирования данных, которые мы хотим отправить клиенту/браузеру. Предположим, мы хотим получить JSON типа {'username':'testuser','email':'testuser@nofoobar.com','password':'testing'}, но мы не можем доверять нашим пользователям. Наши пользователи могут отправлять все, что захотят, и мы не хотим хранить это без проверки.
Например, {'username':'testuser','email':'1234','password':'testing'} . Обратите внимание, что здесь адрес электронной почты — 1234, в таких случаях мы хотим уведомить наших пользователей о том, что мы не можем хранить такие 💩! Для этого мы можем пойти трудным путем, но нам поможет Pydantic. Мы создаем pydantic-классы, которые проверяют типы, называемые схемами. Давайте перейдем к этому и посмотрим на это в действии. Перед этим давайте создадим файлы и папки для хранения схем.
Теперь пришло время создать пидантические классы, то есть схемы. Начнем со схем пользователей. Введите следующий код в schemas > user.py.
Давайте разбираться в этой темной магии! Мы наследуем BaseModel от pydantic. Это позволяет fastapi валидировать данные о пользователях и в случае ошибки ее обработать. В этом случае всякий раз, когда мы хотим создать пользователя. Мы будем получать данные в формате JSON, где электронная почта будет проверена в правильном почтовом формате, а пароль будет проверен как строка длиной не менее 4 символов.
Поскольку мы пытаемся использовать EmailStr из pydantic, нам необходимо сначала устнаовить эту библиотеку. Давайте добавим pydantic[email]в наш файл requirements.txt и установим все зависимости с помощью pip install -r require.txt
#предыдущие зависимости
alembic==1.11.1
pydantic[email] # новая библиотека
Схемы станут более понятными, когда мы будем использовать их в наших маршрутах, и вы увидите их влияние в действии.
✅ В следующей статье мы c тобой подключимся к бд и узнаем как нужно хранить пароли
Читайте также: Часть 8 (Внедрение зависимостей: подключение к бд. Система хранения паролей)
.
❤️ Если вам понравилась статья, ставьте лайк и подписывайтесь на мой канал (Заходи в Ай-Ти).
👍 Если у вас остались вопросы или есть интересные темы, которые вы хотите, чтобы я разобрал, то пишите в комментариях. Ваше мнение очень важно для меня!
#fastapi python #python обучение #изучаем python #сайт на питоне #learn python