Cara Mendefinisikan Bidang Wajib di Pydantic

Cara Mendefinisikan Bidang Wajib Di Pydantic



Bidang wajib adalah bidang yang harus ada dalam model data. Bidang-bidang ini penting dan tidak boleh dibiarkan kosong, karena diperlukan agar dapat berfungsi dengan baik atau menyelesaikan suatu proses. Jika bidang wajib tidak diberi nilai, Pydantic akan memunculkan pengecualian ValueError. Kolom dapat didefinisikan sebagai kolom wajib dengan berbagai cara. Namun, Pydantic menetapkan semua bidang model data “wajib” secara default. Artikel ini akan menunjukkan cara menentukan bidang wajib di Pydantic. Kami juga akan membahas beberapa tip bagus untuk menggunakan bidang yang wajib diisi.

Manfaat Menggunakan Bidang Wajib

Ada beberapa manfaat menggunakan bidang wajib di Pydantic.

  • Memastikan kelengkapan data: Bidang yang wajib diisi membantu kami memastikan bahwa model data kami lengkap dan valid. Hal ini dapat membantu mencegah kesalahan dalam kode dan pemrosesan data Anda.
  • Mencegah masukan berbahaya: Bidang yang wajib diisi juga dapat digunakan untuk mencegah pengguna jahat memasukkan data yang tidak valid ke dalam sistem Anda.
  • Membuat kode lebih mudah dibaca: Anda dapat meningkatkan keterbacaan serta pemahaman kode Anda dengan menggunakan kolom yang wajib diisi.

Cara Mendefinisikan Bidang Wajib di Pydantic

Di Pydantic, ada tiga metode untuk mendefinisikan kolom sebagai kolom wajib diisi. Mari kita jelajahi masing-masing secara mendetail.







Menggunakan Anotasi

Cara paling sederhana untuk mendefinisikan bidang wajib di Pydantic adalah dengan menggunakan anotasi. Dengan menggunakan anotasi, sejenis metadata sintaksis, Anda dapat menambahkan detail lebih lanjut tentang variabel dan atribut kelas. Di Pydantic, anotasi digunakan untuk menunjukkan jenis data yang diharapkan dari suatu kolom, dan secara default, semua kolom yang dianotasi dianggap wajib sampai Anda menjadikan suatu kolom opsional.



dari gila-gilaan impor Model Dasar

kelas Orang ( Model Dasar ) :

nama lengkap: str

tinggi: mengambang

surel : str

Dalam contoh ini, nama_lengkap, tinggi badan, dan email merupakan kolom yang wajib diisi. Jika Anda membuat instance kelas Person tanpa memberikan nilai untuk bidang ini, Pydantic akan memunculkan ValidationError yang menunjukkan bahwa bidang yang diperlukan tidak ada.



mencoba :

data_orang = {

'tinggi' : 5.8 ,

}

orang = Orang ( **data_orang )

kecuali NilaiKesalahan sebagai Dia:

mencetak ( Dia )





Dalam contoh ini, bidang nama_lengkap tidak ada, dan bidang tinggi juga tidak ada. Kedua bidang ini wajib diisi, dan ValidationError memberikan informasi yang jelas tentang bidang yang hilang.

Menggunakan Elipsis (…)

Cara lain untuk mendeklarasikan field seperti yang diwajibkan di Pydantic adalah dengan menggunakan elipsis ( ). Ini adalah pendekatan eksplisit yang disediakan oleh Pydantic, untuk menandai suatu bidang sebagai wajib.



dari gila-gilaan impor Model Dasar

kelas Produk ( Model Dasar ) :

nama: str = ...

harga : mengambang = ...

keterangan : str = ...

Dalam contoh ini, nama bidang, harga, dan deskripsi semuanya ditentukan sesuai kebutuhan menggunakan elipsis. Metode ini membuatnya eksplisit dan terlihat bahwa bidang tertentu tidak dapat dilewati saat membuat turunan kelas Produk.

mencoba :

data produk = {

'nama' : 'Telepon genggam' ,

'keterangan' : 'Ponsel pintar dengan RAM 16Gb' ,

}

produk = Produk ( **data produk )

kecuali NilaiKesalahan sebagai Dia:

mencetak ( Dia )


Dalam contoh ini, bidang harga tidak ada, dan ValidationError dengan jelas menunjukkan bidang wajib yang tidak ada.

Menggunakan Fungsi Bidang

Fungsi Bidang dari modul Pydantic memberikan kemampuan tambahan untuk menyesuaikan validasi bidang dan metadata. Anda dapat menggunakan fungsi Bidang untuk mendeklarasikan bidang yang wajib diisi dan menerapkan aturan validasi tambahan.

Inilah cara Anda menentukan bidang yang wajib diisi menggunakan fungsi Bidang:

dari gila-gilaan impor Model Dasar , Bidang

kelas Alamat ( Model Dasar ) :

jalan: str = Bidang ( ... , keterangan = 'Alamat jalan' )

kota: str = Bidang ( ... )

Kode Pos: str = Bidang ( ... )

Dalam contoh ini, kita menggunakan fungsi Bidang untuk menentukan bidang wajib jalan, kota, dan kode pos, beserta aturan validasi dan deskripsi tambahan. Elipsis “…” menunjukkan bahwa bidang ini harus didefinisikan sebagai bidang yang wajib diisi.

mencoba :

alamat_data = {

'jalan' : 'Jalan Utama 111' ,

'Kode Pos' : '123456'

}

alamat = Alamat ( **data_alamat )

kecuali NilaiKesalahan sebagai Dia:

mencetak ( Dia )

Dalam contoh ini, bidang kota tidak ada, dan ValidationError memberikan informasi tentang bidang wajib yang tidak ada.

Bidang yang wajib diisi dapat divalidasi menggunakan fitur Pydantic lainnya, seperti batasan dan tipe. Misalnya, Anda dapat menentukan bahwa bidang nama harus berupa string yang terdiri dari minimal 5 karakter. Anda dapat menggunakan dekorator Bidang untuk menyesuaikan perilaku bidang yang wajib diisi. Misalnya, Anda dapat menentukan nilai default untuk bidang tersebut atau pesan yang akan ditampilkan jika bidang tersebut tidak diberi nilai.

Menggunakan Beberapa Metode untuk Mendefinisikan Bidang Wajib dalam Model Pydantic Tunggal

Anda dapat menggunakan beberapa metode untuk menentukan bidang wajib dalam satu model Pydantic. Misalnya, Anda dapat menggunakan anotasi untuk beberapa bidang, elipsis ( ) untuk yang lain, dan fungsi Bidang untuk penyesuaian tambahan. Pydantic memungkinkan Anda memilih pendekatan terbaik untuk organisasi kode dan preferensi keterbacaan Anda. Perhatikan contoh berikut:

dari gila-gilaan impor Model Dasar , Bidang

kelas Karyawan ( Model Dasar ) :

nama: str

departemen: str =

gaji: mengambang = Bidang ( )

Dalam contoh ini, semua bidang wajib digunakan. Kami telah menggunakan tiga metode berbeda untuk menentukan bidang yang wajib diisi. Bidang nama menggunakan anotasi, departemen menggunakan elipsis, dan gaji menggunakan fungsi Bidang.

Tip untuk Menggunakan Bidang Wajib

Mengikuti beberapa praktik yang baik saat menentukan kolom wajib di Pydantic sangat penting untuk membuat kode yang lancar dan mudah dikelola. Kiat-kiat berikut akan membantu Anda menentukan bidang wajib di Pydantic:

  1. Gunakan Nama Bidang yang Jelas dan Deskriptif : Pilih nama yang bermakna untuk bidang Anda yang secara jelas menunjukkan tujuannya. Hal ini membantu pengembang lain mengetahui data apa yang diperlukan dan mengurangi kemungkinan hilangnya kolom wajib diisi.
  2. Berikan Deskripsi Bidang yang Informatif : Saat menggunakan fungsi Bidang untuk menentukan bidang yang wajib diisi, berikan deskripsi deskriptif yang menjelaskan tujuan dan format data yang diharapkan.
  3. Kelompokkan Bidang Terkait : Jika model data Anda memiliki banyak bidang, pertimbangkan untuk mengelompokkan bidang terkait ke dalam struktur bertingkat. Ini dapat membantu kode Anda lebih mudah dibaca dan mempermudah pengelolaan kolom wajib.
  4. Gunakan pesan khusus untuk bidang yang wajib diisi: Secara default, Pydantic akan memunculkan pengecualian ValueError jika bidang wajib tidak diberi nilai. Anda dapat menyesuaikan pesan error dengan menentukan argumen pesan ke dekorator Bidang.

Kesimpulan

Pydantic, secara default, membuat kolom sesuai kebutuhan. Namun, Anda dapat secara eksplisit mendefinisikan bidang tersebut sebagai bidang yang wajib diisi. Dengan mendeklarasikan kolom sesuai kebutuhan, Anda memastikan bahwa model data Anda akurat, lengkap, dan selaras dengan kebutuhan Anda. Dalam posting ini, kami membahas tiga metode berbeda untuk mendefinisikan bidang yang diperlukan di Pydantic, yaitu anotasi, elipsis (…), dan fungsi Bidang. Selain itu, kami melihat beberapa praktik yang direkomendasikan untuk menggunakan bidang wajib sehingga Anda dapat menentukan bidang dalam model data Anda secara efektif.