1. 程式人生 > >第二百六十二節,Tornado框架-cookie

第二百六十二節,Tornado框架-cookie

導入 self. spa 修改 詳情 url submit -c ati

Tornado框架-cookie

Cookie 是網站用來在客戶端保存識別用戶的一種小文件。一般來用庫可以保存用戶登 錄信息、購物數據信息等一系列微小信息。

self.set_cookie()方法,創建cookie必寫參數,cookie名稱和cookie值,後面有可選參數
self.get_cookie()方法,獲取指定cookie值,必寫參數要獲取的cookie名稱

模板引擎

#!/usr/bin/env python
#coding:utf-8

import tornado.ioloop
import tornado.web                              #導入tornado模塊下的web文件
import uimodule #邏輯處理 class indexHandler(tornado.web.RequestHandler): #定義一個類,繼承tornado.web下的RequestHandler類 def get(self): #get()方法,接收get方式請求 if self.get_cookie("admin") == "admin": #判斷cookie值等於admin self.render("
index.html") #顯示index.html文件 else: self.redirect("/dlu") #否則跳轉到登錄 class dluHandler(tornado.web.RequestHandler): #定義一個類,繼承tornado.web下的RequestHandler類 def get(self): #get()方法,接收get方式請求
self.render("dlu.html",shib="") #顯示dlu.html文件 def post(self, *args, **kwargs): #處理post請求 yhm = self.get_argument(yhm) #接收用戶名 mim = self.get_argument(mim) #接收密碼 if yhm =="admin" and mim =="admin": #判斷用戶名和密碼 self.set_cookie(yhm,mim,expires_days=2) #創建cookie self.redirect("/index") #跳轉用戶查看頁面 else: self.render("dlu.html", shib="用戶名或密碼不正確") #如果用戶名和密碼不正確,打開登錄頁面 class tuichuHandler(tornado.web.RequestHandler): def get(self): #處理get方法請求 self.set_cookie("admin","0",expires=0) #修改cookie值 self.redirect("/index") #跳轉頁面 settings = { #html文件歸類配置,設置一個字典 "template_path":"template", #鍵為template_path固定的,值為要存放HTML的文件夾名稱 "static_path":"static", #鍵為static_path固定的,值為要存放js和css的文件夾名稱 } #路由映射 application = tornado.web.Application([ #創建一個變量等於tornado.web下的Application方法 (r"/index", indexHandler), #判斷用戶請求路徑後綴是否匹配字符串index,如果匹配執行MainHandler方法 (r"/dlu", dluHandler), (r"/tuichu", tuichuHandler), ],**settings) #將html文件歸類配置字典,寫在路由映射的第二個參數裏 if __name__ == "__main__": #內部socket運行起來 application.listen(8888) #設置端口 tornado.ioloop.IOLoop.instance().start()

內容html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href=‘{{static_url("s1.css")}}‘>
</head>
<body>
<h1>登錄成功後才能看到</h1><a href="/tuichu">退出</a>
</body>
</html>

登錄html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form method="post" action="/dlu">
    用戶名:<input type="text" name="yhm"/>
    密碼:<input type="text" name="mim"/>
    <input type="submit" value="提交"/>
    <span style="color: #ee1215">{{shib}}</span>
</form>
</body>
</html>

技術分享

self.set_cookie()方法,創建cookie參數詳情
  1、cookie名稱
  2、cookie值
  3、domain : ‘www.jxiou.com‘, 設置域名,設置域名後,cookie在指定域名下有效
  4、expires:過期時間的時間戳
  5、expires_days:過期時間天
  6、path:‘/‘, 設置cookie有效路徑,/表示全局目錄有效

銷毀cookie

將過期時間expires設置成系統當前時間戳減一,也就是過去了的時間,就會自動銷毀cookie

#!/usr/bin/env python
#coding:utf-8

import tornado.ioloop
import tornado.web                              #導入tornado模塊下的web文件
import uimodule
import time

#邏輯處理

class indexHandler(tornado.web.RequestHandler):  #定義一個類,繼承tornado.web下的RequestHandler類
    def get(self):                                              #get()方法,接收get方式請求
        if self.get_cookie("admin") == "admin":                 #判斷cookie值等於admin
            self.render("index.html")                           #顯示index.html文件
        else:
            self.redirect("/dlu")                               #否則跳轉到登錄


class dluHandler(tornado.web.RequestHandler):  #定義一個類,繼承tornado.web下的RequestHandler類
    def get(self):                                              #get()方法,接收get方式請求
        self.render("dlu.html",shib="")                         #顯示dlu.html文件
    def post(self, *args, **kwargs):                            #處理post請求
        yhm = self.get_argument(yhm)                          #接收用戶名
        mim = self.get_argument(mim)                          #接收密碼
        if yhm =="admin" and mim =="admin":                     #判斷用戶名和密碼
            self.set_cookie(yhm,mim,expires_days=2)             #創建cookie
            self.redirect("/index")                             #跳轉用戶查看頁面
        else:
            self.render("dlu.html", shib="用戶名或密碼不正確")    #如果用戶名和密碼不正確,打開登錄頁面

class tuichuHandler(tornado.web.RequestHandler):
    def get(self):                                              #處理get方法請求
        self.set_cookie("admin","0",expires=time.time()-1)                  #將過期時間設置成當前時間戳減1,成過去時間,銷毀cookie
        self.redirect("/index")                                 #跳轉頁面
        print()


settings = {                                    #html文件歸類配置,設置一個字典
    "template_path":"template",                 #鍵為template_path固定的,值為要存放HTML的文件夾名稱
    "static_path":"static",                     #鍵為static_path固定的,值為要存放js和css的文件夾名稱
}

#路由映射
application = tornado.web.Application([         #創建一個變量等於tornado.web下的Application方法
    (r"/index", indexHandler),                   #判斷用戶請求路徑後綴是否匹配字符串index,如果匹配執行MainHandler方法
    (r"/dlu", dluHandler),
    (r"/tuichu", tuichuHandler),
],**settings)                                   #將html文件歸類配置字典,寫在路由映射的第二個參數裏

if __name__ == "__main__":
    #內部socket運行起來
    application.listen(8888)                    #設置端口
    tornado.ioloop.IOLoop.instance().start()

第二百六十二節,Tornado框架-cookie