Validates JSON data
Project description
\n# Flask JSONvalidator\r\n\r\nflask_jsonvalidator is a library for validating request JSON data or pratically any json data, such as those obtained from external services or command-line parsing, converted in JSON format.\r\n\r\n## Installing\r\nInstall and update using pip:\r\n\r\nshell\r\n$ pip install flask-jsonvalidator\r\n
\r\n\r\n## Example\r\n\r\nHere is a quick example to using flask_jsonvalidator
, validating a request JSON data:\\r\n\r\nAll neccessary imports\r\npython\r\nfrom flask_jsonvalidator import (\r\n JSONValidator,\r\n IntValidator,\r\n StringValidator,\r\n ArrayOfValidator\r\n)\r\n
\r\n\r\nA simple validator class\r\n\r\npython\r\n# validators.py\r\n\r\nclass JSONCheck(JSONValidator):\r\n validators = {\r\n "name" : StringValidator(max=15, min=2, nullable=False),\r\n "age" : IntValidator(min=13, nullable=False),\r\n "hobbies" : ArrayOfValidator(validator=StringValidator(min=2,max=15, nullable=False))\r\n }\r\n
\r\n\r\n#### A simple decorator for the JSON data check \r\n\r\npython\r\n\r\nfrom functools import wraps\r\nfrom flask import request, abort\r\n\r\ndef args_check(validator):\r\n def decorator(f):\r\n @wraps(f)\r\n def decorated_function(*args, **kwargs):\r\n if not validator.validate(request.json):\r\n return abort(400)\r\n return f(*args, **kwargs)\r\n return decorated_function\r\n return decorator\r\n
\r\n\r\n#### Use case\r\n\r\npython\r\nfrom flask import (\r\n Flask, \r\n jsonify, \r\n request, \r\n abort\r\n)\r\nfrom validators import JSONCheck\r\n\r\napp = Flask(__name__)\r\n\r\nusers = []\r\n\r\n@app.route("/users", methods=["GET"])\r\ndef get_users():\r\n return jsonify(users)\r\n\r\n@app.route("/users", methods=["POST"])\r\n@args_check(JSONCheck())\r\ndef add_user():\r\n global users\r\n \r\n user = dict(\r\n name = request.json.get("name"),\r\n age = request.json.get("age"),\r\n hobbies= request.json.get("hobbies")\r\n )\r\n users.append(user)\r\n return jsonify(user)\r\n\r\nif __name__ == "__main__":\r\n app.run(debug=True)\r\n \r\n
\r\n
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for flask-jsonvalidator-1.0.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | e51d76be572e495c7fca193d48dab751410cae10ec45d35e053ad1b7c5efabae |
|
MD5 | 88daaff8c8a84df9099c25e1218b0c79 |
|
BLAKE2b-256 | 881fde05a3ab8aa55a5926a6cfca4c1126d427834f14d15ca04ac1f7caa4a585 |
Hashes for flask_jsonvalidator-1.0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2cbbe21a653eaaf2c3eee5b575c2f29c718d243374bc01c2073e38aab11b76ee |
|
MD5 | 23b1b699b2e8d8d57cdbe8de9dc5d2d8 |
|
BLAKE2b-256 | 9a21360fea15cffdb705e32527d7d321d2c15ae2082cc10a0337c41b964b2699 |