首页 > 代码库 > Python快速建站系列-Part.Three-注册和登录

Python快速建站系列-Part.Three-注册和登录

|版权声明:本文为博主原创文章,未经博主允许不得转载。

 

上一个Part已经给TSSS编好了一个简单的Web服务,网页的基础模版也写好了,那从这个Part开始就慢慢增加编写功能。

先写基础功能:注册和登录的实现

 


 

 

复杂的安全cookies实现可以看这里  使用安全cookies,因为快速建站这个其实只相当于一个小demo,所以复杂的用户系统会在以后实现,现在只需要实现拥有用户名,密码,昵称和用户权限声明的一个用户系统就可以了。

看一下users的数据库规范然后再写代码

#数据库规范
codedb:users           
	_id 		        ID
	username 	     用户名
	password     	     密码
	nickname	        昵称
        roleid                 权限声明

 

先写出来注册页面signup.html↓

 1 {% extends "main.html" %}
 2 {% block content %}
 3 <form role="form"  action="/sign/up" method="POST">
 4     <div class="form-group">
 5         <label for="exampleInput"></label>用户名<input class="form-control" name="username" />
 6     </div>
 7     <div class="form-group">
 8         <label for="exampleInputPassword1">密码</label><input type="password" class="form-control" id="exampleInputPassword1" name="password" />
 9     </div>
10     <div class="form-group">
11         <label for="exampleInput">昵称</label><input class="form-control"  name="nickname" />
12     </div>
13     <div class="checkbox">
14         <label><input type="checkbox" />Check me out</label>
15     </div> <button type="submit" class="btn btn-default">提交</button>
16 </form>
17 {% end %}

再写个登录页面signin.html↓

 1 {% extends "main.html" %}
 2 {% block content %}
 3 <form role="form" action="/sign/in" method="POST">
 4     <div class="form-group">
 5         <label for="exampleInput"></label>用户名<input class="form-control" name="username" />
 6     </div>
 7     <div class="form-group">
 8         <label for="exampleInputPassword1">密码</label><input type="password" class="form-control" id="exampleInputPassword1" name="password" />
 9     </div>
10     <div class="checkbox">
11         <label><input type="checkbox" />Check me out</label>
12     </div> <button type="submit" class="btn btn-default">登录</button>
13 </form>
14 {% end %}

然后写SignHandler↓

 1 class SignHandler(web.RequestHandler):
 2     def get(self,choice):
 3         if choice == in:
 4             self.render(signin.html)
 5         else if choice == up:
 6             self.render(signup.html)
 7     def post(self,choice):
 8         coll = self.application.db.users
 9         if choice == in:
10             username = self.get_argument(username)
11             if coll.find_one({username:username}):
12                 if self.get_argument(password)==coll.find_one({username:username})[password]:
13                     self.set_cookie(username,username)
14                     self.set_cookie(nickname,coll.find_one({username:username})[nickname])
15                     self.redirect(/)
16                 else:
17                     self.write({error:password is wrong})
18             else:
19                 self.write({error:no this user})
20         else if choice == up:
21             username = self.get_argument(username)
22             password = self.get_argument(password)
23             nickname = self.get_argument(nickname)
24             if coll.find_one({username:username}):
25                 self.write({error:the username has been used})
26             else:
27                 coll.insert({username:username,password:password,nickname:nickname,roleid:0})
28                 self.redirect(/)

 

这样注册和登录的功能就实现了

--Part.Three--

 

Python快速建站系列-Part.Three-注册和登录