Điều này có thể được sử dụng cùng với quy tắc lược đồ khi xác thực ánh xạ để đặt thuộc tính của trình xác thực cho tài liệu con. Quy tắc này được ưu tiên hơn
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True5 [xem ]. Để biết chi tiết đầy đủ, hãy tham khảo
cho phép
Quy tắc này lấy một
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True6 giá trị được phép. Xác thực giá trị đích nếu giá trị nằm trong các giá trị được phép. Nếu giá trị đích là một , tất cả các thành viên của nó phải ở trong các giá trị được phép
>>> v.schema = {'role': {'type': 'list', 'allowed': ['agent', 'client', 'supplier']}} >>> v.validate[{'role': ['agent', 'supplier']}] True >>> v.validate[{'role': ['intern']}] False >>> v.errors {'role': ["unallowed values ['intern',]"]} >>> v.schema = {'role': {'type': 'string', 'allowed': ['agent', 'client', 'supplier']}} >>> v.validate[{'role': 'supplier'}] True >>> v.validate[{'role': 'intern'}] False >>> v.errors {'role': ['unallowed value intern']} >>> v.schema = {'a_restricted_integer': {'type': 'integer', 'allowed': [-1, 0, 1]}} >>> v.validate[{'a_restricted_integer': -1}] True >>> v.validate[{'a_restricted_integer': 2}] False >>> v.errors {'a_restricted_integer': ['unallowed value 2']}
Đã thay đổi trong phiên bản 0. 5. 1. Đã thêm hỗ trợ cho loại
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True7.
tất cả
Xác thực nếu tất cả các ràng buộc được cung cấp xác thực trường. Xem để biết chi tiết
Mới trong phiên bản 0. 9
bất kỳ
Xác thực nếu bất kỳ ràng buộc nào được cung cấp xác thực trường. Xem để biết chi tiết
Mới trong phiên bản 0. 9
kiểm tra với
Xác thực giá trị của một trường bằng cách gọi hàm hoặc phương thức
Một chức năng phải được thực hiện như nguyên mẫu sau
def functionnname[field, value, error]: if value is invalid: error[field, 'error message']
Đối số
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True8 trỏ đến phương thức
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True9 của trình xác nhận cuộc gọi. Xem Mở rộng Cerberus về cách gửi lỗi.
Đây là một ví dụ kiểm tra xem một số nguyên có phải là số lẻ hay không
def oddity[field, value, error]: if not value & 1: error[field, "Must be an odd number"]
Sau đó, bạn có thể xác thực một giá trị như thế này
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True
Nếu ràng buộc của quy tắc là một chuỗi, thì thể hiện phải có một phương thức với tên đó có tiền tố là
schema = {'field': {'check_with': [oddity, 'prime number']}}1. Xem tương đương với ví dụ dựa trên chức năng ở trên
Ràng buộc cũng có thể là một chuỗi các thứ này sẽ được gọi liên tiếp
schema = {'field': {'check_with': [oddity, 'prime number']}}
Đã thay đổi trong phiên bản 1. 3. Quy tắc đã được đổi tên từ
schema = {'field': {'check_with': [oddity, 'prime number']}}2 thành
schema = {'field': {'check_with': [oddity, 'prime number']}}3
chứa
Quy tắc này xác thực rằng đối tượng vùng chứa chứa tất cả các mục đã xác định
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True3
phụ thuộc
Quy tắc này cho phép một người xác định một tên trường duy nhất, một chuỗi tên trường hoặc một trong các tên trường và một chuỗi các giá trị được phép theo yêu cầu trong tài liệu nếu trường được xác định có trong tài liệu
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True4
Khi nhiều tên trường được xác định là phụ thuộc, tất cả những tên này phải có mặt để trường mục tiêu được xác thực
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True5
Khi ánh xạ được cung cấp, không chỉ phải có tất cả các thành phần phụ thuộc mà còn phải khớp với bất kỳ giá trị được phép nào của chúng
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True6
Khai báo các phụ thuộc vào các trường tài liệu phụ với ký hiệu dấu chấm cũng được hỗ trợ
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True7
Khi một tài liệu con được xử lý, việc tìm kiếm một trường được đề cập sẽ bắt đầu ở cấp độ của tài liệu đó. Để xử lý tài liệu được xử lý ở cấp gốc, khai báo phải bắt đầu bằng ____. Sự xuất hiện của hai dấu mũ đầu tiên [_______95] được hiểu là một
schema = {'field': {'check_with': [oddity, 'prime number']}}4 đơn lẻ không có ý nghĩa đặc biệt
def functionnname[field, value, error]: if value is invalid: error[field, 'error message']0
Ghi chú
Nếu bạn muốn mở rộng ngữ nghĩa của ký hiệu dấu chấm, bạn có thể ghi đè phương thức.
Ghi chú
Việc đánh giá quy tắc này không xem xét bất kỳ ràng buộc nào được xác định bằng quy tắc
Đã thay đổi trong phiên bản 1. 0. 2. Hỗ trợ định địa chỉ tuyệt đối với
schema = {'field': {'check_with': [oddity, 'prime number']}}4.
Đã thay đổi trong phiên bản 0. 8. 1. Hỗ trợ các trường tài liệu phụ dưới dạng phụ thuộc.
Đã thay đổi trong phiên bản 0. 8. Hỗ trợ các phần phụ thuộc dưới dạng từ điển.
Mới trong phiên bản 0. 7
trống rỗng
Nếu bị ràng buộc với việc xác thực giá trị của
schema = {'field': {'check_with': [oddity, 'prime number']}}9 sẽ không thành công nếu giá trị đó trống. Theo mặc định, trường trống không được chọn và do đó được cho phép khi quy tắc không được xác định. Nhưng việc xác định nó với ràng buộc
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True30 sẽ bỏ qua các quy tắc có thể được xác định là
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True31,
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True32,
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True33,
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True34,
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True35,
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True36 và
schema = {'field': {'check_with': [oddity, 'prime number']}}2 cho trường đó khi giá trị được coi là trống
def functionnname[field, value, error]: if value is invalid: error[field, 'error message']1
Mới trong phiên bản 0. 0. 3
loại trừ
Bạn có thể khai báo các trường để loại trừ những trường khác
def functionnname[field, value, error]: if value is invalid: error[field, 'error message']2
Bạn có thể yêu cầu cả hai trường để tạo độc quyền hoặc
def functionnname[field, value, error]: if value is invalid: error[field, 'error message']3
Bạn cũng có thể chuyển nhiều trường để loại trừ trong danh sách
def functionnname[field, value, error]: if value is invalid: error[field, 'error message']4
cấm
Đối diện với điều này xác thực nếu một giá trị là bất kỳ nhưng một trong các giá trị được xác định
def functionnname[field, value, error]: if value is invalid: error[field, 'error message']5
Mới trong phiên bản 1. 0
mặt hàng
Xác thực các mục của bất kỳ lần lặp nào dựa trên một chuỗi các quy tắc phải xác thực từng mục tương ứng với chỉ mục. Các mục sẽ chỉ được đánh giá nếu kích thước của iterable nhất định phù hợp với định nghĩa. Điều này cũng áp dụng trong quá trình chuẩn hóa và các mục có giá trị không được chuẩn hóa khi độ dài không khớp
def functionnname[field, value, error]: if value is invalid: error[field, 'error message']6
Xem quy tắc để xử lý các loại
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True38 có độ dài tùy ý
quy tắc phím
Quy tắc này lấy một bộ quy tắc làm ràng buộc rằng tất cả các khóa của a được xác thực bằng
def functionnname[field, value, error]: if value is invalid: error[field, 'error message']7
Mới trong phiên bản 0. 9
Đã thay đổi trong phiên bản 1. 0. Đổi tên từ
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True39 thành
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True40
Đã thay đổi trong phiên bản 1. 3. Đổi tên từ
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True40 thành
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True42
meta
Đây thực sự không phải là quy tắc xác thực mà là một trường trong bộ quy tắc có thể được sử dụng theo quy ước cho dữ liệu cụ thể của ứng dụng mang tính mô tả cho trường tài liệu
def functionnname[field, value, error]: if value is invalid: error[field, 'error message']8
Dữ liệu được gán có thể thuộc bất kỳ loại nào
Mới trong phiên bản 1. 3
nhỏ nhất lớn nhất
Giá trị tối thiểu và tối đa được phép cho bất kỳ đối tượng nào có lớp thực hiện các thao tác so sánh [
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True43 &
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True44]
def functionnname[field, value, error]: if value is invalid: error[field, 'error message']9
Đã thay đổi trong phiên bản 1. 0. Cho phép so sánh bất kỳ loại nào.
Đã thay đổi trong phiên bản 0. 7. Đã thêm hỗ trợ cho các loại
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True45 và
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True46.
độ dài tối thiểu, độ dài tối đa
Độ dài tối thiểu và tối đa được phép đối với các loại có kích thước triển khai
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True47
def oddity[field, value, error]: if not value & 1: error[field, "Must be an odd number"]0
không
Xác thực nếu không có ràng buộc nào được cung cấp xác thực trường. Xem để biết chi tiết
Mới trong phiên bản 0. 9
vô giá trị
Nếu
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True30 giá trị trường được phép. Quy tắc sẽ được kiểm tra trên mọi trường, bất kể nó có được xác định hay không. Giá trị mặc định ràng buộc của quy tắc
schema = {'field': {'check_with': [oddity, 'prime number']}}9
def oddity[field, value, error]: if not value & 1: error[field, "Must be an odd number"]1
Đã thay đổi trong phiên bản 0. 7. ______151 hợp lệ trên các trường thiếu định nghĩa kiểu.
Mới trong phiên bản 0. 3. 0
* quy tắc
Các quy tắc này cho phép bạn xác định các bộ quy tắc khác nhau để xác thực đối với. Trường sẽ được coi là hợp lệ nếu nó hợp lệ đối với tập hợp trong danh sách theo logic tiền tố
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True52,
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True53,
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True54 hoặc
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True55
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True56Xác thực nếu tất cả các ràng buộc được cung cấp xác thực trường.
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True57Xác thực nếu bất kỳ ràng buộc nào được cung cấp xác thực trường.
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True58Xác thực nếu không có ràng buộc nào được cung cấp xác thực trường.
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True59Xác thực nếu áp dụng chính xác một trong các ràng buộc được cung cấp
Ghi chú
Chuẩn hóa trong các bộ quy tắc trong giới hạn của các quy tắc này.
Ghi chú
Trước khi áp dụng các quy tắc này, bạn nên tìm hiểu các giải pháp khả thi khác cho vấn đề có và không có Cerberus. Đôi khi mọi người có xu hướng phức tạp hóa các lược đồ với các quy tắc này
Ví dụ: để xác minh rằng giá trị của trường là một số từ 0 đến 10 hoặc 100 đến 110, bạn có thể thực hiện như sau
def oddity[field, value, error]: if not value & 1: error[field, "Must be an odd number"]2
Quy tắc
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True57 kiểm tra từng quy tắc được đặt trong danh sách. Do đó, lược đồ trên tương đương với việc tạo hai lược đồ riêng biệt
def oddity[field, value, error]: if not value & 1: error[field, "Must be an odd number"]3
Mới trong phiên bản 0. 9
* trình sắp xếp theo quy tắc
Bạn có thể nối bất kỳ quy tắc nào với dấu gạch dưới và quy tắc khác với danh sách các giá trị quy tắc để tiết kiệm việc nhập
def oddity[field, value, error]: if not value & 1: error[field, "Must be an odd number"]4
Vì vậy, bạn có thể sử dụng điều này để xác thực tài liệu dựa trên một số lược đồ mà không cần triển khai logic của riêng bạn
def oddity[field, value, error]: if not value & 1: error[field, "Must be an odd number"]5
một trong
Xác thực nếu áp dụng chính xác một trong các ràng buộc được cung cấp. Xem để biết chi tiết
Mới trong phiên bản 0. 9
chỉ đọc
Nếu
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True30 giá trị là chỉ đọc. Quá trình xác thực sẽ không thành công nếu trường này có trong từ điển đích. Điều này rất hữu ích, chẳng hạn như khi nhận một tải trọng cần được xác thực trước khi gửi đến kho dữ liệu. Trường có thể được cung cấp bởi kho dữ liệu, nhưng không thể ghi
Trình xác thực có thể được định cấu hình với đối số khởi tạo
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True62 và thuộc tính có cùng tên để cho phép nó xóa tất cả các trường có quy tắc này được xác định tích cực
Đã thay đổi trong phiên bản 1. 0. 2. Có thể được sử dụng cùng với
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True63 và
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True64, xem.
biểu thức chính quy
Quá trình xác thực sẽ không thành công nếu giá trị của trường không khớp với biểu thức chính quy được cung cấp. Nó chỉ được thử nghiệm trên các giá trị chuỗi
def oddity[field, value, error]: if not value & 1: error[field, "Must be an odd number"]6
Một
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True65 ở cuối được đảm bảo cho tất cả các mẫu để khuyến khích người dùng viết các mẫu hoàn chỉnh cho các chuỗi khớp [chứ không phải tìm kiếm]. Việc triển khai không nhất quán đối với một
schema = {'field': {'check_with': [oddity, 'prime number']}}4 hàng đầu, những điều này không được thực thi. Sự không nhất quán đó sẽ không được khắc phục cho chuỗi phát hành
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True67. Để biết chi tiết về cú pháp biểu thức chính quy, hãy xem tài liệu về -module của thư viện chuẩn
Gợi ý
Lưu ý rằng người ta có thể đặt cờ hành vi như một phần của biểu thức, tương đương với việc chuyển
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True69 cho hàm chẳng hạn. Vì vậy, ràng buộc
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True71 bao gồm tương đương với cờ và khớp với bất kỳ chuỗi nào bao gồm 'chén thánh' hoặc bất kỳ biến thể nào của chuỗi đó bằng ký tự viết hoa. Tìm
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True73 trong tài liệu thư viện được đề cập để biết mô tả ở đó
Mới trong phiên bản 0. 7
yêu cầu_tất cả
Điều này có thể được sử dụng cùng với quy tắc lược đồ khi xác thực ánh xạ để đặt thuộc tính của trình xác thực cho tài liệu con. Để biết chi tiết đầy đủ, hãy tham khảo
cần thiết
Nếu
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True30 trường này là bắt buộc. Quá trình xác thực sẽ thất bại khi bị thiếu, trừ khi được gọi với
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True77
def oddity[field, value, error]: if not value & 1: error[field, "Must be an odd number"]7
Ghi chú
Để xác định tất cả các trường của tài liệu theo yêu cầu, hãy xem
Ghi chú
Các trường chuỗi có giá trị trống sẽ vẫn được xác thực, ngay cả khi
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True78 được đặt thành
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True30. Nếu bạn không muốn chấp nhận các giá trị trống, hãy xem quy tắc
Ghi chú
Việc đánh giá quy tắc này không xem xét bất kỳ ràng buộc nào được xác định bằng quy tắc
Đã thay đổi trong phiên bản 0. 8. Kiểm tra sự phụ thuộc của trường.
lược đồ [dict]
Nếu một trường mà quy tắc
def functionnname[field, value, error]: if value is invalid: error[field, 'error message']00 được xác định có giá trị là ánh xạ, thì ánh xạ đó sẽ được xác thực theo lược đồ được cung cấp dưới dạng ràng buộc
def oddity[field, value, error]: if not value & 1: error[field, "Must be an odd number"]8
Ghi chú
Để xác thực các khóa tùy ý của ánh xạ, hãy xem, tương ứng. để xác thực các giá trị tùy ý của ánh xạ
lược đồ [danh sách]
Nếu xác thực
def functionnname[field, value, error]: if value is invalid: error[field, 'error message']00 gặp một chuỗi có kích thước tùy ý làm giá trị, tất cả các mục của chuỗi sẽ được xác thực theo các quy tắc được cung cấp trong ràng buộc của _____ 400
def oddity[field, value, error]: if not value & 1: error[field, "Must be an odd number"]9
Quy tắc lược đồ trên các loại
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True38 cũng là phương pháp ưa thích để xác định và xác thực danh sách từ điển
Ghi chú
Việc sử dụng quy tắc này phải đi kèm với quy tắc
def functionnname[field, value, error]: if value is invalid: error[field, 'error message']04 giới hạn rõ ràng trường ở loại
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True38 như trong ví dụ. Mặt khác, kết quả sai có thể xảy ra khi ánh xạ được xác thực theo quy tắc này với các ràng buộc cho một chuỗi
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True0
Đã thay đổi trong phiên bản 0. 0. 3. Quy tắc giản đồ cho
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True38 loại độ dài tùy ý
loại
Loại dữ liệu được phép cho giá trị khóa. Có thể là một trong những tên sau
Loại TênPython 2 LoạiPython 3 Loạidef functionnname[field, value, error]: if value is invalid: error[field, 'error message']07
def functionnname[field, value, error]: if value is invalid: error[field, 'error message']10
def functionnname[field, value, error]: if value is invalid: error[field, 'error message']11 , ,
def functionnname[field, value, error]: if value is invalid: error[field, 'error message']15
def functionnname[field, value, error]: if value is invalid: error[field, 'error message']18
def functionnname[field, value, error]: if value is invalid: error[field, 'error message']21
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True45
def functionnname[field, value, error]: if value is invalid: error[field, 'error message']27,
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True38, excl.
def functionnname[field, value, error]: if value is invalid: error[field, 'error message']33, loại trừ.
def functionnname[field, value, error]: if value is invalid: error[field, 'error message']33
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True46, , , loại trừ. , , loại trừ.
def functionnname[field, value, error]: if value is invalid: error[field, 'error message']44____433
Bạn có thể mở rộng danh sách này và hỗ trợ
Một danh sách các loại có thể được sử dụng để cho phép các giá trị khác nhau
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True1
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True2
Ghi chú
Mặc dù quy tắc
def functionnname[field, value, error]: if value is invalid: error[field, 'error message']04 hoàn toàn không bắt buộc phải đặt, nhưng bạn không nên bỏ đặt quy tắc này, đặc biệt khi sử dụng các quy tắc phức tạp hơn, chẳng hạn như
def functionnname[field, value, error]: if value is invalid: error[field, 'error message']00. Nếu bạn quyết định vẫn không muốn đặt loại rõ ràng, các quy tắc như
def functionnname[field, value, error]: if value is invalid: error[field, 'error message']00 chỉ được áp dụng cho các giá trị mà quy tắc đó thực sự có thể được sử dụng [chẳng hạn như
def functionnname[field, value, error]: if value is invalid: error[field, 'error message']21 và
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True38]. Ngoài ra, trong trường hợp của
def functionnname[field, value, error]: if value is invalid: error[field, 'error message']00, cerberus sẽ cố gắng quyết định xem quy tắc loại
>>> schema = {'amount': {'check_with': oddity}} >>> v = Validator[schema] >>> v.validate[{'amount': 10}] False >>> v.errors {'amount': ['Must be an odd number']} >>> v.validate[{'amount': 9}] True38 hay loại
def functionnname[field, value, error]: if value is invalid: error[field, 'error message']21 phù hợp hơn và suy luận nó tùy thuộc vào quy tắc
def functionnname[field, value, error]: if value is invalid: error[field, 'error message']00 trông như thế nào
Ghi chú
Xin lưu ý rằng xác thực loại được thực hiện trước hầu hết các loại khác tồn tại cho cùng một trường [chỉ và được xem xét trước]. Trong trường hợp xảy ra lỗi loại, các quy tắc xác thực tiếp theo trên trường sẽ bị bỏ qua và quá trình xác thực sẽ tiếp tục trên các trường khác. Điều này cho phép một người giả định một cách an toàn rằng loại trường đó là chính xác khi các quy tắc [tiêu chuẩn hoặc tùy chỉnh] khác được gọi