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/p/13726859.html