Cách xác định các trường bắt buộc trong Pydantic

Cach Xac Dinh Cac Truong Bat Buoc Trong Pydantic



Trường bắt buộc là trường phải có trong mô hình dữ liệu. Những trường này rất cần thiết và không thể để trống vì chúng cần thiết để hoạt động bình thường hoặc hoàn thành một quy trình. Nếu trường bắt buộc không được cung cấp giá trị, Pydantic sẽ đưa ra ngoại lệ ValueError. Các trường có thể được xác định là trường bắt buộc theo nhiều cách khác nhau. Tuy nhiên, Pydantic đặt tất cả các trường mô hình dữ liệu là “bắt buộc” theo mặc định. Bài viết này sẽ trình bày cách xác định các trường bắt buộc trong Pydantic. Chúng ta cũng sẽ thảo luận về một số mẹo hay để sử dụng các trường bắt buộc.

Lợi ích của việc sử dụng các trường bắt buộc

Có một số lợi ích khi sử dụng các trường bắt buộc trong Pydantic.

  • Đảm bảo tính đầy đủ của dữ liệu: Các trường bắt buộc giúp chúng tôi đảm bảo rằng mô hình dữ liệu của chúng tôi hoàn chỉnh và hợp lệ. Điều này có thể giúp ngăn ngừa lỗi trong mã và xử lý dữ liệu của bạn.
  • Ngăn chặn đầu vào độc hại: Các trường bắt buộc cũng có thể được sử dụng để ngăn người dùng độc hại đưa dữ liệu không hợp lệ vào hệ thống của bạn.
  • Làm cho mã dễ đọc hơn: Bạn có thể cải thiện khả năng đọc cũng như hiểu mã của mình bằng cách sử dụng các trường bắt buộc.

Cách xác định các trường bắt buộc trong Pydantic

Trong Pydantic, có ba phương thức để xác định một trường là trường bắt buộc. Hãy cùng khám phá từng chi tiết.







Sử dụng chú thích

Cách đơn giản nhất để xác định trường bắt buộc trong Pydantic là sử dụng chú thích. Bằng cách sử dụng chú thích, một loại siêu dữ liệu cú pháp, bạn có thể thêm chi tiết khác về các biến và thuộc tính của lớp. Trong Pydantic, chú thích được dùng để cho biết loại dữ liệu dự kiến ​​của một trường và theo mặc định, tất cả các trường có chú thích đều được coi là bắt buộc cho đến khi bạn đặt một hoặc nhiều trường thành tùy chọn.



từ pydantic nhập khẩu Mô hình cơ sở

lớp học Người ( Mô hình cơ sở ) :

Họ và tên: str

chiều cao: trôi nổi

e-mail : str

Trong ví dụ này, full_name, chiều cao và email đều là các trường bắt buộc. Nếu bạn tạo một phiên bản của lớp Person mà không cung cấp giá trị cho các trường này, Pydantic sẽ đưa ra lỗi ValidationError cho biết rằng các trường bắt buộc bị thiếu.



thử :

dữ liệu người = {

'chiều cao' : 5,8 ,

}

người = Người ( **dữ liệu người )

ngoại trừ Giá trịLỗi BẰNG Nó là:

in ( Nó là )





Trong ví dụ này, trường full_name bị thiếu và trường chiều cao cũng bị thiếu. Cả hai trường này đều bắt buộc và ValidationError cung cấp thông tin rõ ràng về các trường bị thiếu.

Sử dụng dấu ba chấm (…)

Một cách khác để khai báo một trường theo yêu cầu trong Pydantic là sử dụng dấu ba chấm ( ). Đây là một cách tiếp cận rõ ràng do Pydantic cung cấp, để đánh dấu một trường theo yêu cầu.



từ pydantic nhập khẩu Mô hình cơ sở

lớp học Sản phẩm ( Mô hình cơ sở ) :

tên: str = ...

giá : trôi nổi = ...

Sự miêu tả : str = ...

Trong ví dụ này, tên trường, giá và mô tả đều được xác định theo yêu cầu bằng dấu chấm lửng. Phương thức này làm cho rõ ràng và hiển thị rằng các trường cụ thể không thể bị bỏ qua khi tạo một phiên bản của lớp Sản phẩm.

thử :

dữ liệu sản phẩm = {

'tên' : 'Điện thoại di động' ,

'Sự miêu tả' : 'Điện thoại thông minh có RAM 16Gb' ,

}

sản phẩm = Sản phẩm ( **dữ liệu_sản phẩm )

ngoại trừ Giá trịLỗi BẰNG Nó là:

in ( Nó là )


Trong ví dụ này, trường giá bị thiếu và ValidationError chỉ rõ trường bắt buộc bị thiếu.

Sử dụng hàm trường

Hàm Trường từ mô-đun Pydantic cung cấp các khả năng bổ sung để tùy chỉnh siêu dữ liệu và xác thực trường. Bạn có thể sử dụng hàm Trường để khai báo các trường bắt buộc và áp dụng các quy tắc xác thực bổ sung.

Đây là cách bạn có thể xác định các trường bắt buộc bằng hàm Trường:

từ pydantic nhập khẩu Mô hình cơ sở , Cánh đồng

lớp học Địa chỉ ( Mô hình cơ sở ) :

đường phố: str = Cánh đồng ( ... , Sự miêu tả = 'Địa chỉ đường phố' )

thành phố: str = Cánh đồng ( ... )

Mã Bưu Chính: str = Cánh đồng ( ... )

Trong ví dụ này, chúng tôi sử dụng hàm Trường để xác định các trường bắt buộc là đường phố, thành phố và mã zip, cùng với các quy tắc và mô tả xác thực bổ sung. Dấu chấm lửng “…” cho biết rằng các trường này phải được xác định là trường bắt buộc.

thử :

địa chỉ_dữ liệu = {

'đường phố' : '111 Đường Chính' ,

'Mã Bưu Chính' : '123456'

}

Địa chỉ = Địa chỉ ( **dữ liệu địa chỉ )

ngoại trừ Giá trịLỗi BẰNG Nó là:

in ( Nó là )

Trong ví dụ này, trường thành phố bị thiếu và ValidationError cung cấp thông tin về trường bắt buộc bị thiếu.

Các trường bắt buộc có thể được xác thực bằng cách sử dụng các tính năng Pydantic khác, chẳng hạn như các ràng buộc và loại. Ví dụ: bạn có thể chỉ định rằng trường tên phải là một chuỗi có ít nhất 5 ký tự. Bạn có thể sử dụng trình trang trí Trường để tùy chỉnh hoạt động của các trường bắt buộc. Ví dụ: bạn có thể chỉ định giá trị mặc định cho trường hoặc thông báo sẽ được hiển thị nếu trường không được cung cấp giá trị.

Sử dụng nhiều phương pháp để xác định các trường bắt buộc trong một mô hình Pydantic đơn

Bạn có thể sử dụng nhiều phương pháp xác định các trường bắt buộc trong một mô hình Pydantic. Ví dụ: bạn có thể sử dụng chú thích cho một số trường, dấu chấm lửng ( ) cho những người khác và chức năng Trường để tùy chỉnh bổ sung. Pydantic cho phép bạn chọn cách tiếp cận tốt nhất cho tổ chức mã và tùy chọn dễ đọc của mình. Hãy xem xét ví dụ sau:

từ pydantic nhập khẩu Mô hình cơ sở , Cánh đồng

lớp học Người lao động ( Mô hình cơ sở ) :

tên: str

phòng: str =

lương: trôi nổi = Cánh đồng ( )

Trong ví dụ này, tất cả các trường đều bắt buộc phải được sử dụng. Chúng tôi đã sử dụng ba phương pháp khác nhau để xác định các trường bắt buộc. Trường tên sử dụng chú thích, bộ phận sử dụng dấu chấm lửng và trường lương sử dụng hàm Trường.

Mẹo sử dụng trường bắt buộc

Việc làm theo một số phương pháp hay khi xác định các trường bắt buộc trong Pydantic là điều cần thiết để tạo mã mượt mà và có thể duy trì. Các mẹo sau sẽ giúp bạn xác định các trường bắt buộc trong Pydantic:

  1. Sử dụng tên trường rõ ràng và mang tính mô tả : Chọn tên có ý nghĩa cho các trường của bạn và thể hiện rõ mục đích của chúng. Điều này giúp các nhà phát triển khác biết dữ liệu nào là cần thiết và giảm nguy cơ thiếu các trường bắt buộc.
  2. Cung cấp mô tả trường thông tin : Khi sử dụng hàm Trường để xác định các trường bắt buộc, hãy cung cấp mô tả mang tính mô tả nhằm giải thích mục đích và định dạng dự kiến ​​của dữ liệu.
  3. Các trường liên quan đến nhóm : Nếu mô hình dữ liệu của bạn có số lượng trường lớn, hãy xem xét việc nhóm các trường liên quan thành các cấu trúc lồng nhau. Điều này có thể giúp mã của bạn dễ đọc hơn và giúp việc quản lý các trường bắt buộc dễ dàng hơn.
  4. Sử dụng thông báo tùy chỉnh cho các trường bắt buộc: Theo mặc định, Pydantic sẽ đưa ra ngoại lệ ValueError nếu trường bắt buộc không được cung cấp giá trị. Bạn có thể tùy chỉnh thông báo lỗi bằng cách chỉ định đối số thông báo cho trình trang trí Trường.

Phần kết luận

Pydantic, theo mặc định, tạo các trường theo yêu cầu. Tuy nhiên, bạn có thể xác định rõ ràng trường là trường bắt buộc. Bằng cách khai báo các trường theo yêu cầu, bạn đảm bảo rằng mô hình dữ liệu của mình chính xác, đầy đủ và phù hợp với yêu cầu của bạn. Trong bài đăng này, chúng tôi đã đề cập đến ba phương pháp riêng biệt để xác định các trường bắt buộc trong Pydantic, tức là chú thích, dấu chấm lửng (…) và hàm Trường. Ngoài ra, chúng tôi đã xem xét một số phương pháp được đề xuất khi sử dụng các trường bắt buộc để bạn có thể chỉ định các trường trong mô hình dữ liệu của mình một cách hiệu quả.