tornado进行登录案例
tornado登录代码比较简单,当用户和密码都正确登录就成功,以下代码展示
# -*- coding:utf-8 -*- #@Time : 2020/9/24 16:41 #@Author: 张君 #@File : login.py import tornado.web import tornado.ioloop import MySQLdb class LoginHandle(tornado.web.RequestHandler): def initialize(self,conn): self.conn=conn def get(self,*args,**kwargs): self.render('templates/login.html') pass #prepare方法可以捕获get或者post请求 def prepare(self): if self.request.method=="POST": self.username=self.get_argument('username') self.password = self.get_argument('password') def post(self,*args,**kwargs): print("123") cursor = self.conn.cursor() cursor.execute("select * from register where username='%s' and password='%s'"% (self.username,self.password))
#如果查询的用户为真,或者说是有数据就成功 user=cursor.fetchone()
if user: self.write("登录成功") else:
#这里有两种写法,如果失败了,可以使用wirte_error方法,可以专门调用模板获取其他方法 self.write("登录失败")
self.write_error("登录失败",400) #错误页面的展示,这是 def write_error(self, status_code, **kwargs): self.render("templates/error.log") #设置头部文件 def set_default_headers(self): self.set_header("Server","haha") #这次使用了MySQLdb方法查询数据,与以前注册pymysql方式也差不多 dbconfig={"host":"127.0.0.1","user":'root', "password":"123456","database":"juntest","port":3306} app=tornado.web.Application([ (r'^/login/',LoginHandle,{"conn":MySQLdb.connect(**dbconfig)}) ]) app.listen(8888) tornado.ioloop.IOLoop.instance().start()
登录的login.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>注册页面</title> </head> <body> <form action="/login/" method="post" > 用户名:<input type="text" name="username" /> 密码 :<input type="password" name="password"> <input value="登录" type="submit"> </form> </body> </html>
错误的error.log
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> 页面错误了 </body> </html>
查看运行效果,登录界面
输入错误的用户名和密码登录失败,未使用write_error方法
如果调用wirte_error方法,就会调用特定模板
登录成功页面
作者:做梦的人(小姐姐) 出处:https://www.cnblogs.com/chongyou/ 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。 如果文中有什么错误,欢迎指出。以免更多的人被误导。 微信号:18582559217 |