Tornado-部分参数和cookie

参数和cookie设置

目录机构:

复制代码
import tornado.ioloop
import tornado.web
from day100_wusir.controllers.account import LoginHandler
from day100_wusir.controllers.home import HomeHandler

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        # self.write("Hello, world")    #与Django的HTTPresponse一样
        # self.render("main.html")      #和Django一样
        self.redirect('http://www.baidu.com')   #和Django一样

settings = {
    "template_path": 'views',#配置HTML模板路径
}
application = tornado.web.Application([
    (r"/index", MainHandler),
    (r"/login", LoginHandler),
    (r"/home", HomeHandler),
],**settings)

if __name__ == "__main__":
    application.listen(8888)
    tornado.ioloop.IOLoop.instance().start()
app
复制代码
复制代码
"""
账号相关信息
"""

import tornado.ioloop
import tornado.web

class LoginHandler(tornado.web.RequestHandler):
    def get(self, *args, **kwargs):
        '''
        传值到前端可直接写出
        :param args:
        :param kwargs:
        :return:
        '''
        self.render('login.html',msg="")

    def post(self, *args, **kwargs):
        '''
        get_argument可以接收GET和POST的数据
        get_arguments() 相当于Django的get_list()方法
        get_body_argument() 只拿get数据
        get_body_arguments()
        get_query_argument()只拿POST数据
        get_query_arguments()
        get_cookie() 获取请求的cookie信息
        :param args:
        :param kwargs:
        :return:
        '''
        username = self.get_argument('user')
        password = self.get_argument('pwd')
        if username == "root" and password == '123':
            self.set_cookie('xxxxxx','oooooo')  #设置cookie
            self.redirect('/home')
        else:
            # kwargs = {
            #     'items': items,
            #     'items2': items2,
            #     'add': add,
            #     'checked': checked
            # }
            '''
            传值到前端可直接写出,也可以写**kwargs,前端根据模本语言进行渲染
            '''
            self.render('login.html',msg="用户名或密码错误")
account
复制代码
复制代码
import tornado.ioloop
import tornado.web


class HomeHandler(tornado.web.RequestHandler):
    def get(self, *args, **kwargs):
        xx = self.get_cookie('xxxxxx')
        if not xx:
            self.redirect('/login')
            return
        self.write('欢迎登陆')
home
复制代码
复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form action="/login" method="POST">
        <input type="text" name="user"/>
        <input type="password" name="pwd"/>
        <input type="submit" value="提交" />{{msg}}
    </form>
</body>
</html>
login
复制代码
复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>Main</h1>
</body>
</html>
main
复制代码

 

posted @   总要做些什么  阅读(117)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
点击右上角即可分享
微信分享提示