FlaskRequestGuard
Flask Request Guard is a Python library for validating incoming HTTP requests in Flask web applications. It provides a simple yet flexible way to define request rules and enforce them automatically on incoming requests, ensuring that only requests that meet the specified requirements are allowed to proceed.
Installation
Use the package manager pip to intall flask-request-gaurd.
pip install flask-guard
Create the keys
from FlaskGuard import RequestParameter
# Creates a key that has the name "name" and type str with a minimum length of 0 and
# a maximum length of 10
name_key = RequestParameter("name", str, 0, 10)
# Creates a key that has the name "range" and type int with a minimum value of -10 and
# a maximum value of 10
range_key = RequestParameter("range", int, -10, 10)
Create the validation function
from FlaskGuard import FlaskGuard
# Init FlaskRequestGuard
guard = FlaskRequestGuard("myapp")
# Keys from the code snippet above
required_keys = [range_key, name_key]
# Returns a function that is used to check a request
validate_user_request = guard.create_validate_function(required_keys)
Check request
request = {"name": "erik", "age": 23, "range": 2}
# Returns (True, {"error_messages": []})
is_valid, error_messages = validate_user_request(request)
request = {"name": "eeeeeeeeeee", "age": 23, "range": 2}
# Returns (False, {"error_messages": ["The 'name' field must be 10 size or less,
# and at least 0 size or more, but is actually 11 characters long."]})
is_valid, error_messages = validate_user_request(request)
request = {"age": 23, "range": 2}
# Returns False, {"error_messages": ["Missing name field in request body."]}
is_valid, error_messages = validate_user_request(request)
For an example where it's used with Flask, check out FlaskGuard-example repo.
Run tests
Run this commad in FlaskGuard directory to run the tests
python -m unittest discover tests
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.
License
Metadata
Release files for flask-guard 0.0.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| flask-guard-0.0.8.tar.gz | 10.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| flask_guard-0.0.8-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 16.6 kB
Release files / flask-guard-0.0.8.tar.gz
| Download URL | flask-guard-0.0.8.tar.gz |
|---|---|
| Size | 10.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a2c6acd42b150516d1f92d78d5ef1ed84767ce6ddb4285e1e8cb7d1250ac2e22
|
|
BLAKE2b-256 checksum How to use checksums |
dd4549bb0644153444548472467209172c25da310ffb00fc845e88231cbb93ed
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.2
|
Release files / flask_guard-0.0.8-py3-none-any.whl
| Download URL | flask_guard-0.0.8-py3-none-any.whl |
|---|---|
| Size | 6.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4b010d2f231918161a6c31bcd95d628e3baf7c2ba93b39f63b83e0ea843384c0
|
|
BLAKE2b-256 checksum How to use checksums |
2a83487ea5455214d497dcccef5947f5d31dff839a49742c618c406a32e86873
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.2
|