📌 Python: Pydantic v2 bilan ma'lumotlarni qat'iy tekshirish
Salom, hamkasblar! Bugun backend rivojlanishida ma'lumotlar yaxlitligini ta'minlashning eng samarali vositasi — Pydantic v2 haqida gaplashamiz.
Backend'da API orqali kelayotgan JSON ma'lumotlarini qo'lda tekshirish (if-else'lar bilan) — bu texnik qarzdorlikning boshlanishi. Pydantic v2 esa Rust tilida qayta yozilgani uchun v1 ga nisbatan 5-50 barobar tezroq ishlaydi.
Nega aynan Pydantic v2?
1. Type Safety: Ma'lumotlar turi noto'g'ri bo'lsa, avtomatik xatolik qaytaradi.
2. Validation: Murakkab mantiqiy tekshiruvlarni (masalan, email formati yoki sonlar diapazoni) osonlik bilan amalga oshiradi.
3. Performance: Yuqori yuklamali tizimlar uchun optimallashtirilgan.
Quyidagi misolda foydalanuvchi ma'lumotlarini qanday validatsiya qilishni ko'ramiz:
from pydantic import BaseModel, EmailStr, Field, field_validator
class UserSchema(BaseModel):
username: str = Field(min_length=3, max_length=20)
email: EmailStr
age: int = Field(gt=18, description="Yosh 18 dan katta bo'lishi shart")
@field_validator('username')
@classmethod
def username_must_be_alphanumeric(cls, v):
if not v.isalnum():
raise ValueError('Username faqat harf va raqamlardan iborat bo\'lishi kerak')
return v
# Ishlatilishi:
try:
user = UserSchema(username="dev_ali", email="ali@example.com", age=25)
print(user.model_dump_json())
except Exception as e:
print(e)
Bu yondashuv kodni yanada toza (clean code) qiladi va API'ga kiruvchi ma'lumotlar ustidan to'liq nazorat o'rnatishga yordam beradi. Loyihalaringizda aynan shunday deklarativ uslubdan foydalanishni maslahat beraman.
#complex_programmer #python #backend #cleancode
🚀 Kanal: @complexprogrammeruzchannel
💬 Guruh: @complexprogrammergroup
Salom, hamkasblar! Bugun backend rivojlanishida ma'lumotlar yaxlitligini ta'minlashning eng samarali vositasi — Pydantic v2 haqida gaplashamiz.
Backend'da API orqali kelayotgan JSON ma'lumotlarini qo'lda tekshirish (if-else'lar bilan) — bu texnik qarzdorlikning boshlanishi. Pydantic v2 esa Rust tilida qayta yozilgani uchun v1 ga nisbatan 5-50 barobar tezroq ishlaydi.
Nega aynan Pydantic v2?
1. Type Safety: Ma'lumotlar turi noto'g'ri bo'lsa, avtomatik xatolik qaytaradi.
2. Validation: Murakkab mantiqiy tekshiruvlarni (masalan, email formati yoki sonlar diapazoni) osonlik bilan amalga oshiradi.
3. Performance: Yuqori yuklamali tizimlar uchun optimallashtirilgan.
Quyidagi misolda foydalanuvchi ma'lumotlarini qanday validatsiya qilishni ko'ramiz:
from pydantic import BaseModel, EmailStr, Field, field_validator
class UserSchema(BaseModel):
username: str = Field(min_length=3, max_length=20)
email: EmailStr
age: int = Field(gt=18, description="Yosh 18 dan katta bo'lishi shart")
@field_validator('username')
@classmethod
def username_must_be_alphanumeric(cls, v):
if not v.isalnum():
raise ValueError('Username faqat harf va raqamlardan iborat bo\'lishi kerak')
return v
# Ishlatilishi:
try:
user = UserSchema(username="dev_ali", email="ali@example.com", age=25)
print(user.model_dump_json())
except Exception as e:
print(e)
Bu yondashuv kodni yanada toza (clean code) qiladi va API'ga kiruvchi ma'lumotlar ustidan to'liq nazorat o'rnatishga yordam beradi. Loyihalaringizda aynan shunday deklarativ uslubdan foydalanishni maslahat beraman.
#complex_programmer #python #backend #cleancode
🚀 Kanal: @complexprogrammeruzchannel
💬 Guruh: @complexprogrammergroup