webpy实现简单的登录注册和对应验证
2017-11-23 22:58
585 查看
结构图如下:
主程序如下:
各模板文件如下:
[root@original templates]# cat index.html
[root@original templates]# cat login.html
[root@original templates]# cat register.html
运行测试截图
运行:
浏览器测试界面:
登录成功页面
登录页面:
注册页面:
数据库验证:
主程序如下:
#coding=utf-8 import sys,hashlib reload(sys) sys.setdefaultencoding('utf8') import web web.config.debug = False from web import form db = web.database(dbn='postgres', user='postgres', pw='redhat', db='lockey') #数据库连接 render = web.template.render('templates/') #定义渲染模板位置 urls = ( '/', 'index', '/register','register', '/login', 'login', '/logout','logout' ) #定义url app = web.application(urls, globals()) session = web.session.Session(app, web.session.DiskStore('sessions'), initializer={'username': None}) myform = form.Form( form.Textbox("用户名", form.notnull, form.regexp('[A-Za-z0-9\-]+', 'Must be alpha or digit!'), form.Validator('Must be more than 5 characters!', lambda y:len(y)>5)), form.Textbox("姓名", form.notnull, form.regexp('\d+', 'Must be a digit'), form.Validator('Must be more than 5', lambda x:int(x)>5)), form.Password('密码'), form.Password('密码确认')) class index: def GET(self): # make sure you create a copy of the form by calling it (line above) # Otherwise changes will appear globally if not session.username: raise web.seeother('/login') else: username = session.username return render.index(username) #登录表单form模板 loginform = form.Form( form.Textbox('username', form.notnull, form.regexp('[A-Za-z0-9\-]+', 'Must be alpha or digit!'), form.Validator('Must be more than 5 characters!', lambda y:len(y)>5)), form.Password('password', form.notnull, form.regexp('[A-Za-z0-9\-]+', 'Must be alpha or digit!'), form.Validator('Must be more than 5 characters!', lambda y:len(y)>5)), form.Button('Login') ) class register: def GET(self): return render.register() def POST(self): i = web.input() if i.username: userInsert = db.insert('users', name=i.username,age=i.age,passwd=hashlib.md5(i.pwd1).hexdigest()) return render.index(i.username) else: return render.register() class login: def GET(self): form = loginform() # make sure you create a copy of the form by calling it (line above) # Otherwise changes will appear globally return render.login(form,user='user') def POST(self): form = loginform() if not form.validates(): return render.login(form,user='user') else: # form.d.boe and form['boe'].value are equivalent ways of # extracting the validated arguments from the form. #users = db.select('users',where={'name':form.d.username}) users = db.query('select * from users where name=$name', vars={'name':form.d.username}) result = users[0]#None #for user in users: # result = user if result and result.passwd == hashlib.md5(form.d.password).hexdigest(): session.username = form.d.username raise web.seeother('/') return render.login(form,user=None) class logout: def GET(self): session.username = None raise web.seeother('/') if __name__=="__main__": app.run()
各模板文件如下:
[root@original templates]# cat index.html
$def with (username) $if username: I just wanted to say <em>hello</em> to $username. $else: Not correctly loged in, please click logout to relogin! <h1><a href="/logout">logout</a></h1>
[root@original templates]# cat login.html
$def with (form,user) <form name="main" method="post"> $if not form.valid: <p class="error">There are some items not correct, please try again!</p> $if not user:<p class="error">Username or password not correct, please try again!</p> $:form.render() </form> <h1><a href="/register">Sign Up</a></h1>
[root@original templates]# cat register.html
<form name="main" method="post"> Username <input type="text" name="username"/> Age <input type="text" name="age"/> Password <input type="password" name="pwd1"/> Pagain <input type="password" name="pwd2"/> <input type="submit" value="submit"/> </form> <h1><a href="/">index page</a></h1>
运行测试截图
运行:
浏览器测试界面:
登录成功页面
登录页面:
注册页面:
数据库验证:
相关文章推荐
- Ajax实现简单的登录验证与帐号注册
- android下的XMPP对应smack-4.2.1,实现登录,注册,发单聊,加聊天室,发群聊等简单功能
- Vue+Vue Router+Axios+Webpack+Flask+MySQL实现简单的注册、登录验证功能
- 三层架构(MVC)实现简单登陆注册验证(含验证码)
- Python实现简单登录验证
- 用MVC模式实现简单用户登录注册功能
- 利用ajax实现局部刷新(简单的注册验证案例)
- shell 实现简单的登录和注册功能
- 模仿京东用户注册 用JQuery实现简单表单验证(附效果图)
- Android基础学习总结(十二)——利用Bmob实现用户账户体系(注册、登录、验证等)
- 新手教你学Spring MVC4.0+MyBatis+MySQL5.0实现简单用户注册登录程序(二)
- ASP.NET jQuery 实例12 通过使用jQuery validation插件简单实现用户注册页面验证功能
- Ionic+AngularJS实现登录和注册带验证功能
- Zend Framework 教程:简单的注册和登录验证
- nodejs+express+mongodb简单实现注册登录写发博客
- JSP+Servlet + JDBC 实现简单的登录验证模块
- React + nodemailer + koa-jwt 实现登录注册邮箱验证
- 关于APIcloud中的登录与注册的简单实现
- 利用ajax实现简单的注册验证局部刷新实例
- javaWeb 简单注册登录(含数据库连接) -- (三) 实现用户注册请求的响应