html表单的验证代码,Html form表单验证(示例代码)

#!/usr/bin/env python#-*- coding:utf-8 -*-

importtornado.ioloopimporttornado.webimportioimportreclassIpfile:

REGULAR=‘.*‘ #正则表达式

#regular="^(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}$"

def __init__(self,error_dict=None,required=True): #requried 表示不能为空

self.error_dict={}iferror_dict:

self.error_dict.update(error_dict)#更新错误表

self.required=required #true #传入到对象当中

self.error=None

self.is_valid=False

self.value=Nonedefvalidate(self,name,input_value):if not self.required : #如果是not true就不能通过,是not false的时候就能,即 required = false #可以为空

print(‘self.required‘, self.required) #testttttttttttt

self.is_valid=True

self.value=input_value #值封装在里面

#这里应该有些问题

else: #否则就是 required = True

if notinput_value.strip():if self.error_dict.get(‘required‘,None): #如果能获取到值 # 找是否有填错误信息

self.error=self.error_dict[‘require‘] #就直接等于给的值

else:

self.error= "%s is valid" %nameelse:

ret=re.match(Ipfile.REGULAR, input_value)ifret:

self.is_valid=True

self.value=input_valueelse:

ret=re.match(Ipfile.REGULAR,input_value) #跟给定正则匹配

print(‘ret‘, ret) #testttttttttttt

if ret: #匹配成功

self.is_valid=True

self.value=input_value #匹配成功就用用户输入的值赋值给类里面的value

else:if self.error_dict.get(‘valid‘,None): #如果有提供错误信息

self.error=self.error_dict[‘valid‘]else:

self.error="%s is valid" %nameclassBaseform(object):def __init__(self):pass

#self.host = "(.*)"

#self.ip = "^(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}$"

#self.port = ‘(\d+)‘

#self.phone = ‘^1[3|4|5|8][0-9]\d{8}$‘

defcheck_valid(self, handle):

flag=True

value_dict={}

error_message_dict={}

success_value_dict={}for key, regular in self.__dict__.items(): #regular 继承前是正则表达式 继承后是对象ipfile key = ‘ip‘

print(‘regular‘, regular) #testttttttttttt

input_value=handle.get_argument(key) #获取用户输入的值

print(‘input_value‘,input_value) #testttttttttttt

regular.validate(key, input_value) #执行ipfile

ifregular.is_valid:

success_value_dict[key]=regular.valueprint(‘success_value_dict‘, success_value_dict) #testttttttttttt

else:

error_message_dict[key]=regular.errorprint(‘error_message_dict‘,error_message_dict) #testttttttttttt

flag=False

value_dict[key]=input_valuereturnflag,success_value_dict,error_message_dictclassHomeform(Baseform):def __init__(self):#self.ip=Ipfile(required=True)

self.phone=Ipfile(required=True)classIndexHandler(tornado.web.RequestHandler):defget(self):#callback=self.get_argument(‘callback‘)

#self.write(‘%s ([11,22,33]);‘ % callback)

self.render(‘index.html‘)def post(self, *args, **kwargs):#obj=MainForm()

#is_valid,value_dict=obj.check_valid(self)

#if is_valid:

#print(value_dict)

pass

classHomehandler(tornado.web.RequestHandler):defget(self):

self.render(‘home.html‘)defpost(self):

obj=Homeform()

is_valid,success_dict,error_dict=obj.check_valid(self)print(‘error_dict‘,error_dict) #testttttttttttt

ifis_valid:print(‘sccess‘,success_dict)else:print(‘error‘,error_dict)

self.render(‘home.html‘)#print(is_valid,success_dict,error_dict)

settings={‘template_path‘: ‘views‘,‘static_path‘: ‘statics‘,‘static_url_prefix‘: ‘/statics/‘,

}

application=tornado.web.Application([

(r"/index", IndexHandler),

(r"/home", Homehandler),

],**settings)if __name__ == "__main__":

application.listen(8088)

tornado.ioloop.IOLoop.instance().start()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值