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框架的主要内容,如果未能解决你的问题,请参考以下文章

Python Day65Web框架Django

DAY15-web框架本质及第一个Django实例

Web框架(Day64)

day34-WEB框架

web应用与web框架(Day65)

python学习笔记-Day17 - web框架