1 #!/usr/bin/env python

2 #-*- coding:utf-8 -*-

3

4 importtornado.web5 importlogging6 importdatetime7 importbase648

9 from base importBaseHandler10

11

12 classRegisterHandler(BaseHandler):13

14 '''

15 注册处理类16 '''

17

18 def get(self, *args, **kwargs):19 self.error = {"exists": "用户名或者邮箱已被使用!"}20 user =None21 error = self.get_argument("error", default="")22 input_user = self.get_argument("user", default="")23 input_email = self.get_argument("email", default="")24 self.render("auth/register.htm",25 user=user,26 error=self.error.get(error, ""),27 input_user=input_user,28 input_email=input_email,29 admin=0)30

31 defpost(self):32 username = self.get_body_argument("input_user", default="")33 email = self.get_body_argument("input_email", default="")34 password = self.get_body_argument("input_passwd", default="")35 passwd =base64.b64encode(password)36

37 #判断用户名或者邮箱是否已被使用

38 if notself._checkusername_action(username, email):39 self.db.execute('''insert into users40 (41 name,42 email,43 password,44 image,45 admin,46 created_at47 )48 values49 (50 %s,51 %s,52 %s,53 'none',54 '0',55 %s56 )''',57 username,58 email,59 passwd,60 datetime.datetime.now())61 self.redirect("/login")62 else:63 self.redirect(64 "/register?error=exists&user={0}&email={1}".format(username, email))65

66 def_checkusername_action(self, username, email):67 '''

68 检查是否有该用户69 '''

70 user =self.db.query(71 "select id from users where (name=%s or email=%s)", username, email)72 if len(user) ==0:73 returnFalse74 else:75 returnTrue76

77

78 classLoginHandler(BaseHandler):79

80 '''

81 登录处理类82 '''

83

84 def get(self, *args, **kwargs):85 self.error ={86 "not_exists": "用户名或者邮箱不存在!",87 "disable": "该用户名已经停用,若有疑问请联系管理员!",88 "passwd_error": "密码错误!"

89 }90 user =None91 error = self.get_argument("error", default="")92 input_user = self.get_argument("user", default="")93 self.render("auth/login.htm",94 user=user,95 input_user=input_user,96 error=self.error.get(error, ""),97 admin=0)98

99 defpost(self):100 username = self.get_body_argument("input_user")101 password = self.get_body_argument("input_passwd")102 cbox_remember = self.get_body_argument("cbox_remember", default="off")103 passwd =base64.b64encode(password)104

105 if notself._checkusername_action(username):106 if notself._has_cn(username):107 self.redirect(108 "/login?error=not_exists&user={0}".format(username))109 else:110 self.redirect("/login?error=not_exists")111

112 if notself._checkpasswd_action(username, passwd):113 if notself._has_cn(username):114 self.redirect(115 "/login?error=passwd_error&user={0}".format(username))116 else:117 self.redirect("/login?error=passwd_error")118 else:119 if self.user[0].status ==0:120 if notself._has_cn(username):121 self.redirect(122 "/login?error=disable&user={0}".format(username))123 else:124 self.redirect("/login?error=disable")125 else:126 if cbox_remember == "on":127 self.set_secure_cookie(128 "user", self.user[0].name, expires_days=30)129 else:130 self.set_secure_cookie(131 "user", self.user[0].name, expires_days=1)132 self.redirect("/")133

134 def_checkusername_action(self, username):135 '''

136 检查是否有该用户137 '''

138 user =self.db.query(139 "select id from users where (name=%s or email=%s)", username, username)140 if len(user) ==0:141 returnFalse142 else:143 returnTrue144

145 def_checkpasswd_action(self, username, password):146 '''

147 检查用户密码是否正确148 '''

149 user =self.db.query(150 "select id,name,status from users where (name=%s and password=%s)", username, password)151 if len(user) ==0:152 returnFalse153 else:154 self.user =user155 returnTrue156

157 def_has_cn(self, text):158 '''

159 万恶的中文160 '''

161 importre162 zhPattern = re.compile(u'[u4e00-u9fa5]+')163 returnzhPattern.search(text)164

165

166 classLogoutHandler(BaseHandler):167

168 '''

169 退出登录,清除cookie170 '''

171

172 defget(self):173 self.clear_cookie('user')174 self.redirect("/")175

176

177 classChangePasswdHandler(BaseHandler):178

179 '''

180 修改用户密码181 '''

182

183 @tornado.web.authenticated184 def get(self, *args, **kwargs):185 self.error = {"passwd_error": "密码错误!"}186 error = self.get_argument("error", default="")187

188 self.render("auth/changepasswd.htm",189 user=self.current_user,190 error=self.error.get(error, ""),191 admin=self.get_current_permission())192

193 @tornado.web.authenticated194 defpost(self):195 username = self.get_body_argument("input_user")196 old_password = self.get_body_argument("input_old_passwd")197 new_password = self.get_body_argument("input_new_passwd")198 old_passwd =base64.b64encode(old_password)199 new_passwd =base64.b64encode(new_password)200

201 if notself._checkpasswd_action(username, old_passwd):202 self.redirect("/changepasswd?error=passwd_error")203 else:204 self.db.execute('''update205 users206 set207 password = %s208 where209 name = %s''', new_passwd, username)210 self.clear_cookie("user")211 self.redirect("/login")212

213 def_checkpasswd_action(self, username, password):214 user =self.db.query(215 "select id,name from users where (name=%s and password=%s)", username, password)216 if len(user) ==0:217 returnFalse218 else:219 returnTrue220

221

222 classAccountHandler(BaseHandler):223

224 '''

225 用户管理(新增用户,权限更改)226 '''

227

228 @tornado.web.authenticated229 def get(self, *args, **kwargs):230 self.render("auth/account.htm",231 user=self.current_user,232 admin=self.get_current_permission())233

234 @tornado.web.authenticated235 def post(self, *args, **kwargs):236 action = "_%s_action" %args[0]237 ifhasattr(self, action):238 getattr(self, action)()239 else:240 self.json("fail", "no action!")241

242 def_query_all_action(self):243 '''

244 查询用户表245 '''

246 page_record = 10

247 current_page = self.get_body_argument("current_page", default="1")248 page_dict =dict()249

250 try:251 ret = self.db.query('''select count(id) as count from users''')252 if ret[0].count%page_record ==0:253 total_pages = ret[0].count//page_record254 else:255 total_pages = ret[0].count//page_record + 1

256 page_dict["total_pages"] =str(total_pages)257 page_dict["total_count"] =str(ret[0].count)258 ret = self.db.query('''select259 id,260 name,261 email,262 admin,263 status264 from265 users266 order by admin desc limit %s, %s''',267 (int(current_page)-1)*page_record, page_record)268 page_dict["current_page"] =current_page269 page_dict["current_data"] =ret270 self.json("success", page_dict)271 exceptException as e:272 self.json("error", str(e))273

274 def_add_user_action(self):275 '''

276 新增用户277 '''

278 username = self.get_body_argument("username", default="")279 email = self.get_body_argument("email", default="")280 password = self.get_body_argument("password", default="")281 admin = self.get_body_argument("permission_id", default="2")282 passwd =base64.b64encode(password)283

284 #判断用户名或者邮箱是否已被使用

285 if notself._checkusername_action(username, email):286 self.db.execute('''insert into users287 (288 name,289 email,290 password,291 admin,292 status,293 image,294 created_at295 )296 values297 (298 %s,299 %s,300 %s,301 %s,302 1,303 'none',304 %s305 )''',306 username,307 email,308 passwd,309 admin,310 datetime.datetime.now())311 ret = self.db.execute('''SELECT LAST_INSERT_ID()''');312 user_dict =dict()313 user_dict["id"] =str(ret)314 user_dict["admin"] =admin315 user_dict["email"] =email316 user_dict["status"] = "1"

317 user_dict["name"] =username318

319 self.json("success", user_dict)320 else:321 self.json("fail", "exists")322

323 def_update_user_action(self):324 user_id = self.get_body_argument("user_id", default="")325 admin = self.get_body_argument("permission_id", default="")326 status_id = self.get_body_argument("status_id", default="")327

328 try:329 self.db.execute('''update330 users331 set332 admin = %s,333 status = %s334 where335 id = %s''',336 admin,337 status_id,338 user_id)339 self.json("success", "success")340 exceptException as e:341 self.json("error", str(e))342

343 def_delete_user_action(self):344 user_id = self.get_body_argument("user_id", default="")345 try:346 record = self.db.query('''select id from blogs347 where user_id = %s limit 0,1''', user_id)348 if len(record) ==0:349 self.db.execute('''delete from users where id = %s''', user_id)350 self.json("success", "success")351 else:352 self.json("disable", "disable")353 exceptException as e:354 self.json("error", str(e))355

356 def_checkusername_action(self, username, email):357 '''

358 检查是否有该用户359 '''

360 user =self.db.query(361 "select id from users where (name=%s or email=%s)", username, email)362 if len(user) ==0:363 returnFalse364 else:365 return True

html css js制作登录注册页面,【7】使用css/js/html模板来实现一个注册、登录和管理的功能...相关推荐

  1. 登录注册页面(html css)

    登录效果如图:css样式设置 <style>* {margin: 0;padding: 0;}html {height: 100%;width: 100%;overflow: hidden ...

  2. 仿写-58同城注册页面(HTML+CSS)

    本项目主要运用HTML和CSS语言(未使用js),仿写58同城的注册页面. 小练习非常适合初学者练习. <!DOCTYPE html> <html lang="en&quo ...

  3. 前端案例 ——注册页面(html+css实现)

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  4. HTML5七夕情人节表白网页制作【原生JS制作爱心表白代码】HTML+CSS+JavaScript

    这是程序员表白系列中的100款网站表白之一,旨在让任何人都能使用并创建自己的表白网站给心爱的人看. 此波共有100个表白网站,可以任意修改和使用,很多人会希望向心爱的男孩女孩告白,生性腼腆的人即使那个 ...

  5. 注册页面(HTML+css)

    注册页面 <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8 ...

  6. 用java写注册表单_利用HTML表单标签编写一个注册页面

    今天我们来写一个注册页面 form表单 先来利用表单标签制作一个简单的注册页面,给大家说说标签的结构: 页面结构大体就是这样子的~ 利用HTML表单标签编写一个注册页面 表单标签: 所有需要提交到服务 ...

  7. html css实现登录注册页面,基于HTML5+css+JS_的精美登陆注册界面

    [实例简介] 基于HTML5+css+JS的精美登陆注册界面------------------------------- [实例截图] [核心代码] login4 ├── index.html ├─ ...

  8. 用html和css设计QQ注册页面,html和css制作QQ企鹅教程

    我们知道CSS为HTML标记语言提供了一种样式描述,定义了其中元素的显示方式.CSS在Web设计领域是一个突破.利用它可以实现修改一个小的样式更新与之相关的所有页面元素.大家在学习前端编程的时候肯定会 ...

  9. JS制作支付倒计时页面

    (图一) (图二) (图三) (图四) 实现目标 一,页面在图一时开始进行倒计时(可以点击取消订单按钮,支付页面消失). 二,倒计时完毕,出现删除订单. 三,单击删除订单,弹出弹框,询问是否要真正删除 ...

最新文章

  1. Android------Android.mk调用shell脚本
  2. 计算机编程软文,全盲男孩自学编程,一句话打动无数网友…
  3. java maven 没有target_Maven最全知识点总结 可以收藏啦
  4. python考试有什么用_Python有什么用?2020年学习Python的10个理由
  5. VIP客户服务系统设计(外传)——面对变化的“世界”
  6. 知识蒸馏 | 综述:蒸馏机制
  7. Linux shell脚本详解及实战(二)——shell脚本之分支
  8. 超 短 高精度 bign 模板
  9. Dubbo 服务 IP 注册错误踩坑经历
  10. Protel99SE
  11. searchbar.wxss源代码
  12. 调用高德地图、百度地图客户端
  13. 软件测试面试题(面试前准备篇)
  14. matlab 2016b caffe,请教:在Win7+VS 2013+Matlab R2016b上编译Caffe时遇到问题
  15. html悬挂缩进2字符,文章中如何设置悬挂缩进2字符
  16. 4个万兆光口+8个千兆combo光电复用口+16个千兆网口管理型万兆机架式工业级以太网交换机
  17. Lamp 架构 搭建 论坛网站
  18. 【TPU和GPU,谁将一统AI芯片】摩尔定律之后一万倍,10万+热文引爆激辩
  19. Linux嵌入式设备文件系统修改为ext4格式
  20. K9F1G08U0D Nand芯片

热门文章

  1. 山寨云主机充斥市场 教您辨别真假云主机
  2. 同济计算机博士要求低,上海同济考博的一点经验分享
  3. 步道乐跑怎么刷有效成绩_注会考试成绩5年有效期怎么计算?附报考建议
  4. neo4j图数据库:结构化数据流水线、非结构化数据流水线
  5. 华尔街“巨鲸”东游 IPC知产链获GABC德美银行战略投资再升维
  6. 我的学习计划(持续更新)
  7. 分布式存储系统之Ceph(理论详解)
  8. 千万不要去这些公司面试!
  9. java计算机毕业设计汽车客运站票务管理系统源码+系统+数据库+lw文档+mybatis+运行部署
  10. java-php-python-ssm智能导诊系统计算机毕业设计