
正文
Python快速建站系列-Part.Three-注册和登录
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
|版权声明:本文为博主原创文章,未经博主允许不得转载。
上一个Part已经给TSSS编好了一个简单的Web服务,网页的基础模版也写好了,那从这个Part开始就慢慢增加编写功能。
先写基础功能:注册和登录的实现
复杂的安全cookies实现可以看这里 使用安全cookies,因为快速建站这个其实只相当于一个小demo,所以复杂的用户系统会在以后实现,现在只需要实现拥有用户名,密码,昵称和用户权限声明的一个用户系统就可以了。
看一下users的数据库规范然后再写代码
#数据库规范codedb:users_id IDusername 用户名password 密码nickname 昵称 roleid 权限声明
先写出来注册页面signup.html↓
{% extends "main.html" %} {% block content %} <form role="form" action="/sign/up" method="POST"> <div class="form-group"> <label for="exampleInput"></label>用户名<input class="form-control" name="username" /> </div> <div class="form-group"> <label for="exampleInputPassword1">密码</label><input type="password" class="form-control" id="exampleInputPassword1" name="password" /> </div> <div class="form-group"> <label for="exampleInput">昵称</label><input class="form-control" name="nickname" /> </div> <div class="checkbox"> <label><input type="checkbox" />Check me out</label> </div> <button type="submit" class="btn btn-default">提交</button> </form> {% end %}
再写个登录页面signin.html↓
{% extends "main.html" %} {% block content %} <form role="form" action="/sign/in" method="POST"> <div class="form-group"> <label for="exampleInput"></label>用户名<input class="form-control" name="username" /> </div> <div class="form-group"> <label for="exampleInputPassword1">密码</label><input type="password" class="form-control" id="exampleInputPassword1" name="password" /> </div> <div class="checkbox"> <label><input type="checkbox" />Check me out</label> </div> <button type="submit" class="btn btn-default">登录</button> </form> {% end %}
然后写SignHandler↓
class SignHandler(web.RequestHandler): def get(self,choice): if choice == 'in': self.render('sign\signin.html') else if choice == 'up': self.render('sign\signup.html') def post(self,choice): coll = self.application.db.users if choice == 'in': username = self.get_argument('username') if coll.find_one({'username':username}): if self.get_argument('password')==coll.find_one({'username':username})['password']: self.set_cookie('username',username) self.set_cookie('nickname',coll.find_one({'username':username})['nickname']) self.redirect('/') else: self.write({'error':'password is wrong'}) else: self.write({'error':'no this user'}) else if choice == 'up': username = self.get_argument('username') password = self.get_argument('password') nickname = self.get_argument('nickname') if coll.find_one({'username':username}): self.write({'error':'the username has been used'}) else: coll.insert({'username':username,'password':password,'nickname':nickname,'roleid':0}) self.redirect('/')
这样注册和登录的功能就实现了
--Part.Three--






