python webpy 注册功能_webpy注册登陆 | 学步园

index.py

#coding=utf-8

import web

import datetime

from web import form

web.config.debug = False

import sys

reload(sys)

sys.setdefaultencoding( "utf-8" )

urls=('/','Index',

'/reg','Reg',

'/login','Login',

'/logout','Logout',

'/showusers','Showusers',

)

app=web.application(urls,globals())

render = web.template.render('templates',base='base')

session = web.session.Session(app, web.session.DiskStore('sessions'),initializer={'login':0,})

db1=web.database(dbn='mysql',

db='ideploy1',

user='ideploy1',

host='10.13.38.43',

pw='123456',

port=3306,)

###首页

class Index:

def GET(self):

#return web.ctx.ip

return datetime.datetime.now().strftime('%Y%m%d%H%M%S%S')

###注册页

class Reg:

vusername= form.regexp(r".{3,20}$", '用户名长度为3-20位')

vpass = form.regexp(r".{6,20}$", '密码长度为6-20位')

vemail = form.regexp(r".*@.*", "must be a valid email address")

regForm=web.form.Form(

form.Textbox('username',vusername,description=u'用户名'),

form.Password("password",vpass,description=u"密码"),

form.Password("password2", description=u"确认密码"),

form.Button(u"马上注册", type="submit", description="submit"),

validators = [

form.Validator("两次输入的密码不一致", lambda i: i.password == i.password2)]

)

def GET(self):

return render.reg(self.regForm)

def POST(self):

formdata=web.input();

username=web.net.websafe(formdata.username)

password=web.net.websafe(formdata.password)

regip=web.ctx.ip

regdate=datetime.datetime.now().strftime('%Y%m%d%H%M%S')

if not self.regForm.validates():

return render.reg(self.regForm)

#判断用户名是否存在:

else:

if len(getUserByUserName(username))>0:

return render.reg(self.regForm,u'用户名已存在')

else:

ret=addUser(username,password,regip,regdate)

if ret==0:

#return u'注册成功'

raise web.seeother('/showusers')

else:

return u'注册失败'

###登陆页面

class Login:

loginForm=form.Form(form.Textbox('username',description=u'用户名'),

form.Password("password",description=u"密码"),

form.Button(u"马上登陆", type="submit", description="submit"),)

def GET(self):

if logged():

return 'you are logged'

else:

return render.login(self.loginForm)

def POST(self):

postdata=web.input()

username=web.net.websafe(postdata.username)

password=web.net.websafe(postdata.password)

rslist=getUserByUserName(username)

if len(rslist)==0:

return render.login(self.loginForm,'用户名不存在')

else:

if password==rslist[0].password:

session.login=1

#session.login222=1

return '登陆成功,欢迎你:'+username+':'+str(session.login222)

else:

return render.login(self.loginForm,'用户名及密码不匹配')

###注销登陆页面

class Logout:

def GET(self):

session.login=0

session.kill()

return '注销成功'

###显示用户列表

class Showusers:

def GET(self):

if logged():

usersList=getUsers()

return render.users(usersList)

else:

return '对不起 您没有登陆无权查看'

###判断用户是否登陆

def logged():

if session.login==1:

return True

else:

return False

################################################ 数据库操作部分 begin ############################################################

#增加用户

def addUser(username,password,regdate,regip,isactive='0'):

ret=db1.insert('t_user',username=username ,password=password,regdate=regdate,regip=regip,isactive=isactive)

return ret

#获取用户列表

def getUsers(limit=10000,orderby='regdate'):

rs=db1.select('t_user',limit=limit,order=orderby)

rslist=[]

for r in rs:

rslist.append(r)

return rslist

#根据用户名查询用户信息

def getUserByUserName(username):

rs=db1.select('t_user',where='username="'+username+'"')

rslist=[]

for r in rs:

rslist.append(r)

return rslist

################################################ 数据库操作部分 end ############################################################

if __name__=="__main__":

app.run()

base.html

$def with (page)

hello world
$:page

users.htm

$def with (users)

用户名密码

$for i in users:

$i.username$i.password$i.regip$i.regdate

reg.htm

$def with(form,message='')

$:message

$:form.render()

login.htm

$def with(form,message='')

$:message

$:form.render()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值