❃ Хижина программиста Æ
16.5K subscribers
1.1K photos
75 videos
21 files
2.52K links
Канал для IT Дизайнеров и Программистов, Инженеров и Преподавателей

📡 Ссылка на канал: @hut_programmer_07

⚖️ Фундаментальные знания по основам программирования, философии и этики

💡 По вопросам рекламы: @quadd4rv1n7

Σ 只
Download Telegram
🖥 Pydantic 2.0 — это основная версия библиотеки Pydantic, предназначенной для валидации данных и создания моделей данных в Python.
Она используется в основном для работы с данными, получаемыми из API, конфигурационных файлов или других источников.
Pydantic обеспечивает проверку типов и валидацию данных на основе аннотаций типов, что позволяет разработчикам создавать надежные и безопасные приложения.

🥳 Основные изменения и особенности Pydantic 2.0:

Изменения в API: В Pydantic 2.0 произошли значительные изменения в API, включая упрощение и улучшение читаемости кода. Некоторые старые функции были удалены или изменены, чтобы сделать библиотеку более интуитивной.
Поддержка данных в формате JSON: Pydantic 2.0 предлагает улучшенную работу с данными в формате JSON, что позволяет проще обрабатывать входные и выходные данные в виде JSON-объектов.
Улучшенная производительность: Новая версия оптимизирована для повышения производительности, что позволяет быстрее обрабатывать и валидировать данные.
Расширяемость: В Pydantic 2.0 улучшена система расширяемости, что позволяет разработчикам легко создавать собственные типы данных и валидации.
Поддержка dataclasses: Улучшенная интеграция с встроенными dataclasses, что упрощает их использование вместе с Pydantic.
Статическая типизация: Библиотека поддерживает статическую типизацию и интеграцию с такими инструментами, как mypy, что помогает выявлять ошибки на этапе разработки.
Использование BaseModel: В Pydantic 2.0 продолжается использование BaseModel для создания моделей данных, но с новыми возможностями и улучшенной логикой.

Установка `Pydantic`:
pip install pydantic


Пример кода:
from pydantic import BaseModel, EmailStr, conint, Field, validator, constr
from typing import Optional
import re

class User(BaseModel):
username: constr(min_length=3, max_length=30) # Имя пользователя: от 3 до 30 символов
email: EmailStr # Электронная почта с проверкой формата
age: conint(ge=0) # Возраст: неотрицательное целое число
bio: Optional[str] = Field(default=None, max_length=150) # Опциональная биография, максимум 150 символов
is_active: bool = True # Активный статус пользователя
password: constr(min_length=8) # Пароль: минимум 8 символов

@validator('username')
def validate_username(cls, v):
if not v.isalnum():
raise ValueError('Имя пользователя должно содержать только буквы и цифры')
return v

@validator('bio')
def validate_bio(cls, v):
if v and 'плохое_слово' in v: # Пример фильтрации нецензурных слов
raise ValueError('Биография не должна содержать нецензурных слов')
return v

@validator('password')
def validate_password(cls, v):
if not (re.search(r'[A-Za-z]', v) and re.search(r'[0-9]', v) and re.search(r'[!@#$%^&*(),.?":{}|<>]', v)):
raise ValueError('Пароль должен содержать хотя бы одну букву, одну цифру и один специальный символ')
return v

def __str__(self):
return f"User(username={self.username}, email={self.email}, age={self.age}, bio={self.bio}, is_active={self.is_active})"


Pydantic 2.0 является мощным инструментом для разработки приложений, требующих надежной валидации данных и строгой типизации, особенно в сочетании с такими фреймворками, как FastAPI.

⚡️Теги: #pydantic #python #validate #password #maximudupley #quadd4rv1n7 #2024
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2💋1