Python快速建站系列-Part.Three-注册和登录
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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-注册和登录的主要内容,如果未能解决你的问题,请参考以下文章