Skip to main content

Validate request arguments, Including Cross Field, Cross Struct

Project description

https://raw.githubusercontent.com/Eastwu5788/pre-request/master/docs/static/logo.jpg https://www.travis-ci.org/Eastwu5788/pre-request.svg?branch=master https://coveralls.io/repos/github/Eastwu5788/pre-request/badge.svg?branch=master PyPI - License Documentation Status PyPI Im

欢迎您使用pre-request框架,pre-request致力于简化请求参数验证工作。为Flask的 网络请求参数验证提供了解决方案。

pre-request提供了非常方便的使用的方法,也提供了灵活的扩展接口方便您实现自定义的 业务逻辑。

特点

  1. 提供绝大部分常用的参数基础验证能力,也提供callback函数让用户自定义验证

  2. 提供跨字段的、跨数据结构的参数验证能力,实现参数之间关联验证

  3. 提供响应对象、格式化函数、过滤器等核心组件的自定义能力

  4. 详细完善的测试用例,保证整体测试覆盖率高于90%

  5. 丰富的example,演示了pre-request目前提供的所有能力

安装

pip install pre-request

快速使用

集成pre-request到您的请求中非常简单

from flask import Flask

from pre_request import pre
from pre_request import Rule

app = Flask(__name__)

args = {
   "userId": Rule(type=int, required=True)
}

@app.route("/")
@pre.catch(args)
def hello_world(params):
   from flask import g
   return params == g.params

上面的代码中发生了什么呢?

  1. 首先我们从 pre-request 库中引入全局 pre 对象,使用该对象来过滤用户参数

  2. 我们定义了一个请求参数 userId 并规定该参数的目标类型为 int ,并且不允许为空

  3. 使用 @pre.catch(req_params) 将参数规则赋值给装饰器,并装饰处理函数

  4. 格式化后的参数置于 ~flask.g 中,同时尝试将格式化后的参数置于原函数的 params 参数中。

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

pre_request-2.1.2.tar.gz (17.2 kB view details)

Uploaded Source

File details

Details for the file pre_request-2.1.2.tar.gz.

File metadata

  • Download URL: pre_request-2.1.2.tar.gz
  • Upload date:
  • Size: 17.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.6.7

File hashes

Hashes for pre_request-2.1.2.tar.gz
Algorithm Hash digest
SHA256 e835958742019f0d967d0d7e438ab570e0d9aa425a117cb6698b167253ccfcb5
MD5 8472b82e5a0dd43fce492b71e144fa0d
BLAKE2b-256 e46fbf963589e6d71606c098624920df4e020e453e78065d1914c1548f84c983

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page