Hướng dẫn python input type validation - xác thực loại đầu vào python
Validate dữ liệu là một khâu rất cần thiết trong lập trình, đặc biệt là lập trình web. Trong Python, cũng có rất nhiều thư viện hỗ trợ validation. Trong số đó, Marshmallow là thư viện có tên tuổi. Nào chúng ta cùng khám phá nhé IntroductionTrang chủ của Marshmallow các bạn có thể tham khảo tại đây: https://marshmallow.readthedocs.io/en/3.0/ Ngoài ra, Marshmallow cũng được sử dụng kết hợp với các framework web khác tạo ra các plugin hay extension như:
Tóm tắt một ngắn gọn một vài features của Marshmallow:
InstallationMarshmallow được public tại đây: https://pypi.org/project/marshmallow/ Bạn có thể cài dễ dàng qua 9
Lastest version tại thời điểm bài viết này là 0Python version support marshmallow:
GuideTrong guide này, mình sẽ chỉ giới thiệu tóm tắt 3 features chính:
Ngoài ra, các bạn có thể đọc thêm các features khác ở trong docs nhé: ValidationDeserialize
Serialize
Ngoài ra, các bạn có thể đọc thêm các features khác ở trong docs nhé:
Đầu tiên, mình sẽ khởi tạo một object model:
Tiếp theo, mình tạo một schema validate các field tương ứng trong objects models trên. Để validate input data, ta sẽ sử dụng syntax: 1. Cụ thể:
Kết quả có được:
Tức là dữ liệu này đúng format mình mong muốn. Thử một example khác
Kết quả:
Kết quả này là do value của email đang lỗi định dạng email: 2. Vậy các bạn thắc mắc, làm sao để raise ra được lỗi ?
Ok, ta quay về chỗ định nghĩa Schema, thêm option 3: 0Thử lại example trên, ta sẽ thấy lỗi in ra: 1Để handle exception này, ta sẽ làm như sau: Tiếp theo, trong Object Customer, ta mong muốn username là required. Trong Schema ta cần chỉnh lại như sau: 2Kiểm tra lại nào: 3Look good :v. Kế tiếp, username ta mong muốn độ dài lớn hơn 8 ký tự và nhỏ hơn 16 ký tự. 4Kế quả sẽ là:
DeserializeSerialize Example: 5Ngoài ra, các bạn có thể đọc thêm các features khác ở trong docs nhé: 6SerializeNgoài ra, các bạn có thể đọc thêm các features khác ở trong docs nhé: Example: 7Đầu tiên, mình sẽ khởi tạo một object model: 8Tiếp theo, mình tạo một schema validate các field tương ứng trong objects models trên. |