一个简单的验证数据包

vlight的Python项目详细描述


重量

验证数据的简单包

开始

安装

如果您有旧版本,请执行以下操作:

pip uninstall vlight

安装最新版本: pip install vlight

使用vlight

fromvlightimportv

示例

使用电子邮件验证简单的登录表单:

fromvlightimportvalid# also you can use "v" helper method

v Django的灯光

create validation rules and set data

fromvlightimportvvalid=v({"email":"req|email","password":"req|min:8|max:255"},data={"email":"test@gmail.com","password":"123"# this field have minimum character error})#check data is validifvalid.isOk():# submit your formpasserror=valid.errors()#check have errorifvalid.fails():msgs=error.all()#check a field have erroriferror.has("email"):#this block run when your email field have errorpass#get field errors messagesprint(error.get("email"))# you can set returned error lengthprint(error.get("email",2))#customize error messages#to customize all fields default messages:valid=v({"email":"required|email","password":"required|min:8|max:255"},data={"email":"test@gmail.com","password":"123"},messages={"required":"{field} required ","email":"email field with value [{value}] not valid",})#or you can customize only a field messagesvalid=v({"email":"required|email""|required.msg:enter your email""|email.msg:email is not valid","password":"required|min:8|max:255""|str.min:your password is easy""|str.max:your selected password so hard"},data={"email":"test@gmail.com","password":"123"})
Django的一个例子

views.py

from django.shortcuts import render
from vlight import v

def index(request, **kwargs):
    msgs = []
    if request.method == "POST":

        valid = v({
            "email": "required|email",
            "password": "required|min:8|max:255"
        }, data=request.POST)

        if valid.fails():
            msgs = valid.errors().all()
        else:
            msgs.append("your form submitted!")

    return render(request, "index.html", {"login_errors": msgs}) 

index.html金贾2

<form action="/" method="post">
    <input type="hidden" name="csrfmiddlewaretoken" value="{{ csrf_token }}">
    <label for="email">email:</label>
    <input id="email" type="text" name="email">
    <br>
    <label for="password">password:</label>
    <input id="password" type="password" name="password">
    <input type="submit" value="login">
    {% for error in login_errors %}
        <li><a href="#">{{ error }}</a></li>
    {% endfor %}
</form>

支持的规则

required检查数据是否有字段且数据不为空

"required"

email模式:^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$

"email"

ip模式:^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$

"ip"

url模式:^http(s?):\/\/(www\.)?(((\w+(([\.\-]{1}([a-z]{2,})+)+)(\/[a-zA-Z0-9\_\=\?\&\.\#\-\W]*)*$)|(\w+((\.([a-z]{2,})+)+)(\:[0-9]{1,5}(\/[a-zA-Z0-9\_\=\?\&\.\#\-\W]*)*$)))|(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}(([0-9]|([1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]+)+)(\/[a-zA-Z0-9\_\=\?\&\.\#\-\W]*)*)((\:[0-9]{1,5}(\/[a-zA-Z0-9\_\=\?\&\.\#\-\W]*)*$)*))$

"url"

not_inin检查项中的值

"in:small,larg"

regexnot_regex即将推出

ext检查路径扩展名

"ext:jpg,png,jpeg"

int整数验证

"int"

^ }设置字符串

的最大字符
"max:255"

您可以更改int value的规则以检查max integer value

"int|max:255"
[即将添加更多验证规则]

制定规则

docs coming soon

最新版本更改

0.1

  • 修复错误

联系人

许可证

这个项目是根据麻省理工学院的许可证授权的

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

推荐PyPI第三方库


热门话题
内存Java正在运行。jar heapdump错误   java如何在安卓画布中弯曲文本区域?   java如何在Gdx 安卓游戏编程中获得矩形的真实触碰位置?   找不到java Spring MVC控制器   在Java中使用双重检查锁定单例扩展类   java在高效的时间和内存中动态执行insert(索引、数据)、delete(索引)、getAt(索引)操作。   java 安卓 Toast和视图帮助   java协议缓冲区:从文件中读取所有序列化消息   java如何在Jackson中为参数化接口类型执行通用自定义反序列化程序   与简单的空检查相比,使用(平面)映射的java优势是什么?   异步方法seam中的java Get contextparam   jar使用相同的java运行时运行另一个java程序   java访问Spring批处理中的作业参数   java给定字符串为空或null   在h2数据库1.4中找不到java类“org.h2.fulltext.FullTextLucene”。*不适用于Lucene Core 4*   java Spring Boot在使用@enableSync时不响应任何请求   java错误:在bash上找不到或加载主类pj2   “返回对象”和“返回(对象)”之间的Java差异   java Android开发:如何使用onKeyUp?