Pydantic'te Gerekli Alanlar Nasıl Tanımlanır?

Pydantic Te Gerekli Alanlar Nasil Tanimlanir



Zorunlu alan, veri modelinde bulunması gereken alandır. Bu alanlar önemlidir ve düzgün çalışması veya bir işlemi tamamlaması için gerekli olduğundan boş bırakılamaz. Zorunlu bir alana değer verilmezse Pydantic bir ValueError istisnası oluşturacaktır. Alanlar, çeşitli şekillerde zorunlu alanlar olarak tanımlanabilir. Ancak Pydantic, tüm veri modeli alanlarını varsayılan olarak “gerekli” olarak ayarlar. Bu makale Pydantic'te gerekli alanların nasıl tanımlanacağını gösterecektir. Ayrıca gerekli alanların kullanımına ilişkin bazı iyi ipuçlarını da tartışacağız.

Zorunlu Alanları Kullanmanın Yararları

Pydantic'te gerekli alanları kullanmanın birçok faydası vardır.

  • Veri bütünlüğünün sağlanması: Zorunlu alanlar veri modellerimizin eksiksiz ve geçerli olduğundan emin olmamıza yardımcı olur. Bu, kodunuzdaki ve veri işlemenizdeki hataları önlemeye yardımcı olabilir.
  • Kötü amaçlı girişin önlenmesi: Zorunlu alanlar, kötü niyetli kullanıcıların sisteminize geçersiz veri eklemesini önlemek için de kullanılabilir.
  • Kodu daha okunabilir hale getirmek: Gerekli alanları kullanarak kodunuzun okunabilirliğini ve anlaşılmasını iyileştirebilirsiniz.

Pydantic'te Gerekli Alanlar Nasıl Tanımlanır?

Pydantic'te bir alanı zorunlu alan olarak tanımlamanın üç yöntemi vardır. Her birini ayrıntılı olarak inceleyelim.







Ek Açıklamaları Kullanma

Pydantic'te gerekli bir alanı tanımlamanın en basit yolu ek açıklamaları kullanmaktır. Bir tür sözdizimsel meta veri olan ek açıklamaları kullanarak sınıfların değişkenleri ve nitelikleri hakkında daha fazla ayrıntı ekleyebilirsiniz. Pydantic'te ek açıklamalar, bir alanın beklenen veri türünü belirtmek için kullanılır ve bir alanı veya alanları isteğe bağlı hale getirene kadar varsayılan olarak tüm ek açıklamalı alanlar zorunlu olarak kabul edilir.



itibaren pıdantik içe aktarmak Temel Model

sınıf Kişi ( Temel Model ) :

Ad Soyad: cadde

yükseklik: batmadan yüzmek

e-posta : cadde

Bu örnekte tam_ad, yükseklik ve e-postanın tümü zorunlu alanlardır. Bu alanlar için değer sağlamadan Person sınıfının bir örneğini oluşturursanız, Pydantic gerekli alanların eksik olduğunu belirten bir ValidationError hatası verecektir.



denemek :

kişi_verisi = {

'yükseklik' : 5.8 ,

}

kişi = Kişi ( **kişi_verileri )

hariç Değer Hatası gibi Bu:

Yazdır ( Bu )





Bu örnekte full_name alanı ve yükseklik alanı da eksik. Bu alanların her ikisi de zorunludur ve ValidationError eksik alanlar hakkında net bilgi sağlar.

Üç Noktayı Kullanma (…)

Pydantic'te bir alanı gerektiği gibi bildirmenin başka bir yolu da üç noktayı ( ). Bu, bir alanı gerektiği gibi işaretlemek için Pydantic tarafından sağlanan açık bir yaklaşımdır.



itibaren pıdantik içe aktarmak Temel Model

sınıf Ürün ( Temel Model ) :

isim: cadde = ...

fiyat : batmadan yüzmek = ...

Tanım : cadde = ...

Bu örnekte alanların adı, fiyatı ve açıklaması üç nokta kullanılarak gerektiği şekilde tanımlanmıştır. Bu yöntem, Product sınıfının bir örneğini oluştururken belirli alanların atlanamayacağını açık ve görünür hale getirir.

denemek :

ürün bilgileri = {

'isim' : 'Cep telefonu' ,

'Tanım' : '16 GB RAM'e sahip akıllı telefon' ,

}

ürün = Ürün ( **ürün bilgileri )

hariç Değer Hatası gibi Bu:

Yazdır ( Bu )


Bu örnekte fiyat alanı eksik ve ValidationError, gerekli alanın eksik olduğunu açıkça gösteriyor.

Alan İşlevini Kullanma

Pydantic modülündeki Field işlevi, alan doğrulamayı ve meta verileri özelleştirmek için ek yetenekler sağlar. Gerekli alanları bildirmek ve ek doğrulama kuralları uygulamak için Alan işlevini kullanabilirsiniz.

Alan işlevini kullanarak gerekli alanları şu şekilde tanımlayabilirsiniz:

itibaren pıdantik içe aktarmak Temel Model , Alan

sınıf Adres ( Temel Model ) :

sokak: cadde = Alan ( ... , Tanım = 'Açık adres' )

şehir: cadde = Alan ( ... )

posta kodu: cadde = Alan ( ... )

Bu örnekte, ek doğrulama kuralları ve açıklamalarıyla birlikte gerekli sokak, şehir ve posta_kodu alanlarını tanımlamak için Alan işlevini kullanıyoruz. Üç nokta “…” bu alanların zorunlu alanlar olarak tanımlanması gerektiğini belirtir.

denemek :

adres_verileri = {

'sokak' : '111 Ana Cadde' ,

'posta kodu' : '123456'

}

adres = Adres ( **adres_verileri )

hariç Değer Hatası gibi Bu:

Yazdır ( Bu )

Bu örnekte şehir alanı eksik ve ValidationError eksik gerekli alan hakkında bilgi sağlıyor.

Gerekli alanlar, kısıtlamalar ve türler gibi diğer Pydantic özellikleri kullanılarak doğrulanabilir. Örneğin, bir ad alanının en az 5 karakterden oluşan bir dize olması gerektiğini belirtebilirsiniz. Gerekli alanların davranışını özelleştirmek için Alan dekoratörünü kullanabilirsiniz. Örneğin, alan için varsayılan bir değer veya alana bir değer verilmediğinde görüntülenecek bir mesaj belirtebilirsiniz.

Tek Bir Pydantic Modelinde Gerekli Alanları Tanımlamak İçin Birden Fazla Yöntem Kullanmak

Tek bir Pydantic modelinde gerekli alanları tanımlamak için birden fazla yöntem kullanabilirsiniz. Örneğin, bazı alanlar için ek açıklamalar kullanabilirsiniz; üç nokta ( ) diğerleri için ve ek özelleştirme için Alan işlevi. Pydantic, kod organizasyonunuz ve okunabilirlik tercihleriniz için en iyi yaklaşımı seçmenizi sağlar. Aşağıdaki örneği düşünün:

itibaren pıdantik içe aktarmak Temel Model , Alan

sınıf Çalışan ( Temel Model ) :

isim: cadde

departman: cadde =

maaş: batmadan yüzmek = Alan ( )

Bu örnekte tüm alanların kullanılması zorunludur. Gerekli alanları tanımlamak için üç farklı yöntem kullandık. Ad alanı ek açıklamayı kullanır, departman üç noktayı kullanır ve maaş, Alan işlevini kullanır.

Zorunlu Alanların Kullanımına İlişkin İpuçları

Sorunsuz ve bakımı kolay kod oluşturmak için Pydantic'te gerekli alanları tanımlarken bazı iyi uygulamaları takip etmek çok önemlidir. Aşağıdaki ipuçları Pydantic'te gerekli alanları tanımlamanıza yardımcı olacaktır:

  1. Açık ve Açıklayıcı Alan Adları Kullanın : Alanlarınız için amacını açıkça belirten anlamlı isimler seçin. Bu, diğer geliştiricilerin hangi verilere ihtiyaç duyulduğunu bilmelerine yardımcı olur ve gerekli alanların eksik olma olasılığını azaltır.
  2. Bilgilendirici Alan Açıklamaları Sağlayın : Gerekli alanları tanımlamak için Alan işlevini kullanırken, verilerin amacını ve beklenen biçimini açıklayan açıklayıcı açıklamalar sağlayın.
  3. Grupla İlgili Alanlar : Veri modelinizde çok sayıda alan varsa ilgili alanları iç içe geçmiş yapılar halinde gruplandırmayı düşünün. Bu, kodunuzun daha okunaklı olmasına yardımcı olabilir ve gerekli alanları yönetmeyi kolaylaştırabilir.
  4. Gerekli alanlar için özel mesajlar kullanın: Varsayılan olarak, gerekli bir alana değer verilmediği takdirde Pydantic bir ValueError istisnası oluşturacaktır. Alan dekoratörüne mesaj bağımsız değişkenini belirterek hata mesajını özelleştirebilirsiniz.

Çözüm

Pydantic varsayılan olarak alanları gerektiği gibi yapar. Ancak alanı açıkça gerekli alanlar olarak tanımlayabilirsiniz. Alanları gerektiği gibi bildirerek veri modellerinizin doğru, eksiksiz ve gereksinimlerinize uygun olmasını sağlarsınız. Bu yazıda Pydantic'te gerekli alanları, yani ek açıklamalar, üç nokta (…) ve Alan işlevini tanımlamak için üç farklı yöntemi ele aldık. Ayrıca, veri modelinizdeki alanları etkili bir şekilde belirtebilmeniz için gerekli alanların kullanımına ilişkin önerilen bazı uygulamalara da baktık.