Goolge App Engine Controller 進階

首先先解釋何謂 "dispatch", 所謂dispatch 就是當一個url request 進來時, 找到對應的controller 然後檢查它是否有定義對應的method handler, 若有, 則執行它

例如: 我開了以下的網址 /product_admin/ , 它對應到的handler 是 ProductAdmin  而開網址用到的是 get() method, 則dispatch 的工作就是負責去找到這個method 然後去執行它

最近學習到一個新的做法, 是在google app engine 推出webapp2 class, 允許我們在父物件(被繼承的物件)裡面定義一些前處理和後處理, 注意這邊的前和後是指相對於子物件所定義的 handler 而言, 例如: 父物件為 P, 子物件為C, 兩者皆有定義 get(), 則我在P中可以定義如下的效果(用圖比較清楚)


P.get():
    pre-process

    C.get() 執行

    post-process

也就是說對於所有繼承P 的C, 在它們的get() 被執行前, 我可以定義一些一律要先做 或 後做 的事情, 以達成更彈性的效果

留言

熱門文章