tornado 入門之(http請求行爲方法-路由匹配-切入點函數)醬醬仙的博客【3】

tornado 入門之(http請求行爲方法-路由匹配-切入點函數)【3】


http請求行爲方法

主要:GetPost兩種請求方式,區別如下圖
在這裏插入圖片描述
在這裏插入圖片描述
在http請求中增加參數name=仙仙,在服務器中獲取請求參數方法
在這裏插入圖片描述
在這裏插入圖片描述
self.get_argument() get和post都通用

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        name = self.get_argument('name')
        print(name)
        # name = self.get_query_argument('name')
        self.write("Hello Python!--Get")
    def post(self):
        name = self.get_argument('name')
        print(name)
       	# name = self.get_body_argument('name')
        self.write("Hello Python!--Post")

cookies操作

self.set_cookie('token1','123456',expires_days=1)# 給 token1 添加cookies ,1天后自動清除
self.clear_cookie('token1')	# 清除 token1 的cookies

路由匹配規則

客戶端訪問的http根據路由匹配相應方法

http://100.71.10.140:8080/
http://100.71.10.140:8080/res

import tornado.web  # web框架模塊
import tornado.ioloop  # 核心IO循環模塊,封裝了linux的epoll和BSD的kqueue,是tornado高效的基礎
import config
from tornado.options import define,options

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Hello Python!--Get")
        # self.redirect('/') # 跳轉
    def post(self):
        self.write("Hello Python!--Post")

class ResHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("<h2>你好呀!</h2>")

def make_app():
    return tornado.web.Application([
        (r"/", MainHandler),
        (r"/res", ResHandler)
    ])

if __name__ == "__main__":
    app = make_app()
    app.listen(config.options["port"])

通過 self.redirect(’/’) 可以實現路由的跳轉

http請求的路由可以用正則表達式匹配

# 路由匹配規則
import tornado.web  # web框架模塊
import tornado.ioloop  # 核心IO循環模塊,封裝了linux的epoll和BSD的kqueue,是tornado高效的基礎
import config

class IndexHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Hello Python!")

class DayHandler(tornado.web.RequestHandler):
    def get(self,day):
        self.write("%s" %day)

class Day1Handler(tornado.web.RequestHandler):
    def get(self,day,month,year):
        self.write("%s年%s月%s日" %(year,month,day))

class Day2Handler(tornado.web.RequestHandler):
    def get(self,day,month,year):
        self.write("%s年%s月%s日" %(year,month,day))

if __name__ == "__main__":	
	# Handlers定義路由匹配地址
    app = tornado.web.Application([
        (r'/', IndexHandler),
        (r'/day/(\d{4})', DayHandler),
        (r'/day1/(\d{4})/(\d{2})/(\d{2})', Day1Handler),
        (r'/day2/(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d{2})', Day2Handler)
    ])
    app.listen(config.options["port"])
    tornado.ioloop.IOLoop.current().start()

運行結果:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
兩種路由獲取:一個是直接按順序傳參;後者定義參數,再進行賦值


切入點函數順序

class ResHandler(tornado.web.RequestHandler):
    def initialize(self):# 初始時執行
        print("initialize")
    def prepare(self):   # 預先執行
        print("prepare")
    def get(self):		
        print("get")
        self.write("get")
    def on_finish(self):# 結束時執行
        print("on_finish")

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章