python的laravel风格输入验证。

spotlight的Python项目详细描述


聚光灯

python的laravel风格输入验证。

目录

安装

聚光灯可以通过PIP安装:

pip install spotlight

依赖关系

用法

fromspotlight.validatorimportValidator

简单输入示例

rules={"email":"required|email","first_name":"required|string|max:255","last_name":"required|string|max:255","password":"required|min:8|max:255"}input_={"email":"john.doe@example.com","first_name":"John","last_name":"Doe","password":"test1234"}validator=Validator()errors=validator.validate(input_,rules)

嵌套验证:

rules={"token":"required|string","person":{"first_name":"required|string|max:255","last_name":"required|string|max:255","email":"required|email","password":"required|min:8|max:255"}}input_={"token":"test-token","person":{"first_name":"John","last_name":"Doe","email":"john.doe@example.com","password":"test1234"}}validator=Validator()errors=validator.validate(input_,rules)

列表验证:

rules={"players":"required|list|min:2","players.*.username":"required"}input_={"players":[{"username":"Player 1"},{"username":"Player 2"}]}validator=Validator()errors=validator.validate(input_,rules)

直接验证

有时需要快速而简单的验证,而无需创建规则集。validator类公开了几个可用于直接验证的静态方法。

例如:

email = "john.doe@example.com"

if validator.valid_email(email):
    print("This is a valid email!")

# Or like this:

if Validator.valid_email(email):
    print("This is a valid email!")

可用方法:

  • 有效的电子邮件
  • 有效网址
  • 有效IP
  • 有效的uuid4
  • 有效字符串
  • 有效的_整数
  • 有效的浮点值
  • 有效的_布尔值
  • 有效的_json
  • 有效清单
  • 有效指令
  • 有效阿尔法数
  • 有效阿尔法数值空间

可用规则

必需

正在验证的字段必须存在于输入数据中,并且不能为空。如果满足以下条件之一,则字段被视为"空":

  • 值为
  • 值是空字符串。
  • 值为空列表。
required

不带

当其他指定字段不存在时,验证中的字段必须存在且不为空。

required_without:other

如果存在其他指定字段,则验证中的字段必须存在且不为空。

required_with:other

如果

如果其他指定字段等于某个值,则验证中的字段必须存在且不为空。

pip install spotlight
0

不带

如果存在其他指定的字段,则无法显示正在验证的字段。

pip install spotlight
1

填充

验证中的字段出现时不能为空。

pip install spotlight
2

电子邮件

正在验证的字段必须是有效的电子邮件地址。

pip install spotlight
3

URL

正在验证的字段必须是有效的URL。

pip install spotlight
4

IP

正在验证的字段必须是IP地址。

pip install spotlight
4

min

正在验证的字段必须大于或等于给定的最小值。对于字符串,值对应于字符数。对于整数,值对应于给定的整数值。对于浮点,值对应于给定的浮点值。对于列表,值对应于列表的长度。

pip install spotlight
6

max

正在验证的字段必须小于或等于给定的最大值。对于字符串,值对应于字符数。对于整数,值对应于给定的整数值。对于浮点,值对应于给定的浮点值。对于列表,值对应于列表的长度。

pip install spotlight
7 <3/H3> H3>

验证中的字段必须包含在给定的值列表中。

pip install spotlight
8

阿尔法数

正在验证的字段必须完全是字母数字字符。

pip install spotlight
9

alpha_num_空格

正在验证的字段可能有字母数字字符和空格。

fromspotlight.validatorimportValidator
0

字符串

正在验证的字段必须是字符串。

fromspotlight.validatorimportValidator
1

整数

正在验证的字段必须是整数。

fromspotlight.validatorimportValidator
2

浮动

正在验证的字段必须是浮点值。

fromspotlight.validatorimportValidator
3

布尔型

正在验证的字段必须是布尔值。

fromspotlight.validatorimportValidator
4

列表

正在验证的字段必须是列表。

fromspotlight.validatorimportValidator
5

听写

正在验证的字段必须是dict。

fromspotlight.validatorimportValidator
6

json

正在验证的字段必须是有效的JSON字符串。

fromspotlight.validatorimportValidator
7

Uuid4

正在验证的字段必须是有效的uuid(版本4)。

fromspotlight.validatorimportValidator
8

接受

正在验证的字段必须是yes、on、1或true。这有助于验证"服务条款"的接受。

fromspotlight.validatorimportValidator
9

开头

正在验证的字段必须以给定值之一开头。

rules={"email":"required|email","first_name":"required|string|max:255","last_name":"required|string|max:255","password":"required|min:8|max:255"}input_={"email":"john.doe@example.com","first_name":"John","last_name":"Doe","password":"test1234"}validator=Validator()errors=validator.validate(input_,rules)
0

高级用法

覆盖消息

文档即将推出…

自定义规则

文档即将推出…

插件

聚光灯SQLAlchemy

要使用数据库规则,如唯一性和存在,请签出spotlight sqlalchemy插件。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
使用JDBC的java参数化查询   java如何使用imap文件夹的UIDVality和HIGHESTMODSEQ同步电子邮件   java GWT+Eclipse+外部JAR文件   java在膨胀的布局上创建onClick事件   java JTree显示驱动器根本不显示   接收java。sql。SQLException:调用数据库函数时出现无效列索引错误   cassandra使用Datastax Java驱动程序进行数据块写入   java应用程序在drools工作台上触发规则   java将Windows键重新指定给键盘快捷键   java整数划分为和和和积   java如何让JDialog onTop只为他的父母使用?   java如何拥有具有特定关联方法的常量   java是否可以使用icu4j UnicodeSet类代替正则表达式进行模式匹配?   java如何比较数组的相反索引值,以及基于嵌套for循环的条件进行删除?   如果我有文件名和带有文件夹ID的Google drive文件夹完整URL,如何从Selenium Webdriver java脚本访问Google drive文件?   java变量作为图表中的参数   鼠标左键点击指针下的精灵坐标偏移补偿问题   java JDBC库在Android Studio中不工作   Play Framework中的“groovy.lang.MissingFieldException:没有这样的字段:类的元类:java.lang.class”错误   java从XML中读取子元素作为字段值