1+ from src.flask_inputfilter.Validator import IsStringValidator
2+
13# flask-inputfilter
24
35The ` InputFilter ` class is used to validate and filter input data in Flask applications.
@@ -16,15 +18,18 @@ pip install flask-inputfilter
1618## Quickstart
1719
1820To use the ` InputFilter ` class, you need to create a new class that inherits from it and define the fields you want to validate and filter.
19- There are lots of different filters and validators available to use, and you can also create your own custom filters and validators.
21+
22+ There are lots of different filters and validators available to use, but it is also possible to create your own.
2023
2124### Definition
2225
2326``` python
27+
2428from flask_inputfilter import InputFilter
29+ from flask_inputfilter.Condition import ExactlyOneOfCondition
2530from flask_inputfilter.Enum import RegexEnum
2631from flask_inputfilter.Filter import StringTrimFilter, ToIntegerFilter, ToNullFilter
27- from flask_inputfilter.Validator import IsIntegerValidator, RegexValidator
32+ from flask_inputfilter.Validator import IsIntegerValidator, IsStringValidator, RegexValidator
2833
2934
3035class UpdateZipcodeInputFilter (InputFilter ):
@@ -35,15 +40,14 @@ class UpdateZipcodeInputFilter(InputFilter):
3540 self .add(
3641 ' id' ,
3742 required = True ,
38- filters = [ToIntegerFilter(), ToNullFilter()],
43+ filters = [ToNullFilter()],
3944 validators = [
4045 IsIntegerValidator()
4146 ]
4247 )
4348
4449 self .add(
4550 ' zipcode' ,
46- required = True ,
4751 filters = [StringTrimFilter()],
4852 validators = [
4953 RegexValidator(
@@ -52,6 +56,19 @@ class UpdateZipcodeInputFilter(InputFilter):
5256 )
5357 ]
5458 )
59+
60+ self .add(
61+ ' city' ,
62+ filters = [StringTrimFilter()],
63+ validators = [
64+ IsStringValidator()
65+ ]
66+ )
67+
68+ self .addCondition(
69+ ExactlyOneOfCondition([' zipcode' , ' city' ])
70+ )
71+
5572```
5673
5774### Usage
@@ -61,6 +78,7 @@ After calling the `validate` method, the validated data will be available in the
6178If the data is not valid, the ` validate ` method will return a 400 response with the error message.
6279
6380``` python
81+
6482from flask import Flask, g
6583from your- path import UpdateZipcodeInputFilter
6684
@@ -74,6 +92,7 @@ def updateZipcode():
7492 # Do something with validatedData
7593 id = data.get(' id' )
7694 zipcode = data.get(' zipcode' )
95+
7796```
7897
7998---
0 commit comments