Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from wtforms import Form, ValidationError
- from wtforms import StringField, PasswordField
- from wtforms.validators import Length, InputRequired
- from werkzeug.datastructures import MultiDict
- import re
- def is_proper_username(form, field):
- if not re.match(r"^\w+$", field.data):
- msg = 'Polje "{}" može imati samo slova i brojke'.format(field.name)
- raise ValidationError(msg)
- class LoginForm(Form):
- username = StringField(u'Username:', [InputRequired(), is_proper_username,Length(min=3, max=40)])
- password = PasswordField(u'Password:', [InputRequired(), Length(min=5, max=12)])
- @staticmethod
- def validate_password(form, field):
- data = field.data
- if not re.findall('.*[a-z].*', data):
- msg = 'Polje "{}" mora imati barem jedno malo slovo'.format(field.name)
- raise ValidationError(msg)
- # has at least one uppercase character
- if not re.findall('.*[A-Z].*', data):
- msg = 'Polje "{}" mora imati barem jedno veliko slovo'.format(field.name)
- raise ValidationError(msg)
- # has at least one number
- if not re.findall('.*[0-9].*', data):
- msg = 'Polje "{}" mora imati barem jedan broj'.format(field.name)
- raise ValidationError(msg)
- # has at least one special character
- if not re.findall('.*[^ a-zA-Z0-9].*', data):
- msg = 'Polje "{}" mora imati barem jedan specijalan znak'.format(field.name)
- raise ValidationError(msg)
- # testing our form
- form = LoginForm(MultiDict([('username', 'nikovrdoljak'), ('password', 'lL2m@msbb')]))
- print (form.validate())
- print (form.errors)
Add Comment
Please, Sign In to add comment