import json, re from app.helpers import render, utils, session from app.models import Users val_username = form.regexp(r'^\w[\w\d_]{2,19}$', 'must be betweem 3 and 20 characters. username should containt only latin alphabet, digits and underscores') val_password = form.regexp(r'^.{3,}$', 'must have more than 3 characters') val_email = form.regexp(r'^.+@.+$', 'must be a valid email address') LoginForm = form.Form( form.Textbox('username', val_username, description='Username'), form.Password('password',val_password, description='Password'), form.Button('submit', type='submit', html='Sign in'), validators = [ form.Validator("Username or Password is incorrect", lambda i: Users.check(i.username, i.password)), ] ) class Signin: def __makepage(self, loginform = None): if loginform is None: loginform = LoginForm() return render.layout(view.signin(loginform), title="Sign in") def GET(self): return self.__makepage() def POST(self): loginform = LoginForm() if not loginform.validates(): return self.__makepage(loginform)