Day 5 - 编写Web框架
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Day 5 - 编写Web框架相关的知识,希望对你有一定的参考价值。
代码地址
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框架的主要内容,如果未能解决你的问题,请参考以下文章