1. 程式人生 > >Day 5 - 編寫Web框架

Day 5 - 編寫Web框架

python


代碼地址

https://github.com/michaelliao/awesome-python3-webapp/blob/day-05/www/coroweb.py


參數定義的順序必須是:必選參數、默認參數、可變參數、命名關鍵字參數和關鍵字參數。



先看懂整體框架,再看詳細實現


1.coroweb.py在client請求開始返回func(*args, **kw),然後編寫func(*args,**kw)處理

#比如get(‘/index‘)(func(*args, **kw))


2.middlewares=[logger_factory, response_factory]

init_jinja2(app, filters=dict(datetime=datetime_filter))


3.先看懂add_routes(app, ‘handlers‘),然後是add_static(app),最後await handler(request)


add_route(app, handles.create_comment) 變成

# 自動把handler模塊的所有符合條件的函數註冊了:

add_routes(app, ‘handlers‘)


add_routes,handler->是否有index,blog等屬性


//不理解的 fn = getattr(mod, attr)

//到了add_route,變成了app.router.add_route(method, path, RequestHandler(app, fn))


4.最後的細節

func(*args, **kw)


if 全部都會執行


5.middlewares 攔截器

//await handler(request)


本文出自 “要有夢想,萬一實現了呢” 博客,謝絕轉載!

Day 5 - 編寫Web框架