Python:Tornado 第二章:實戰演練:開發Tornado網站:第三節:RequestHandler:接入點函數

上一篇文章: Python:Tornado 第二章:實戰演練:開發Tornado網站:第二節:路由解析
下一篇文章: Python:Tornado 第二章:實戰演練:開發Tornado網站:第四節:RequestHandler:輸入捕捉

須要子類繼承並定義具體行爲的函數在RequestHandler中被稱爲接入點函數(Entry point),上面的Hello World實例中的get()函數就是典型的接入點函數。web

一、RequestHandler.initialize()

該方法被子類重寫,實現了RequestHandler子類實現的初始化過程。數據庫

能夠爲該函數傳遞參數(參數來源於配置URL映射的定義)。segmentfault

實例:
from tornado.web import RequestHandler,Application
import tornado.ioloop
import tornado.web

class ProfileHandler(RequestHandler):
    def initialize(self,database):
        self.database=database

    def get(self):
        return self.write(self.database)

    def post(self):
        pass

def make_app():
    return Application([
    (r"/test",ProfileHandler,dict(database="test.db",))
])

def main():
    app=make_app()
    app.listen(8888)
    tornado.ioloop.IOLoop.current().start()

if __name__=="__main__":
    main()

在瀏覽器上輸入:http://localhost:8888/test瀏覽器

頁面顯示:app

test.db

二、RequestHandler.prepare()、RequestHandler.on_finish()

prepare()方法用於調用請求處理(get、post等)方法以前的初始化處理,一般用來作資源初始化操做。函數

on_finish()方法用於請求處理結束後的一些清理工做,一般用來清理對象佔用的內存或者關閉數據庫鏈接等工做。tornado

三、HTTP Action處理函數

每一個HTTP Action在RequestHandler中都以單獨的函數進行分開處理:oop

  • RequestHandler.get(*args,**kwargs)
  • RequestHandler.post(*args,**kwargs)
  • RequestHandler.head(*args,**kwargs)
  • RequestHandler.delete(*args,**kwargs)
  • RequestHandler.patch(*args,**kwargs)
  • RequestHandler.put(*args,**kwargs)
  • RequestHandler.options(*args,**kwargs)

每一個處理函數都是HTTP Action的小寫名字命名。post

相關文章
相關標籤/搜索