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方法,就会调用特定模板

登录成功页面
