application.py
__all__ = [
"application",
"auto_application",
"subdir_application",
"subdomain_application",
"loadhook",
"unloadhook",
"autodelegate",
]
__all__是一个字符串列表,里面包含要对外暴露的接口。即可以利用模块名直接调用且只能调用__all__中包含的类或者方法。
application类
下面是类的构造方法头
def __init__(self, mapping=(), fvars={
}, autoreload=None):
一般会这样使用:
app = web.application(urls, global())
先看一下构造器的最后一个参数autoreload(自动加载),默认值为None,
if autoreload is None:
autoreload = web.config.get("debug", False)
这段代码说明,当没有设置autoreload参数时,autoreload = web.config.debug,可能为True,也可能为False。如果没有设置web.config.debug,那autoreload = False,即不启动自动加载。
何为自动加载?
也就是在项目启动后,如果修改了代码,无需重新启动项目,而是程序内部自动加载,从而直接达到预期效果。这在调试代码时很有用。
构造器的第二个参数mapping=()代表urls路由元组,通过init_mapping()函数来初始化url路由映射关系,这个函数内部调用了utils工具类的group()函数
self.init_mapping(mapping)
...
...
def init_mapping(self, mapping):
self.mapping = list(utils.group(mapping,

本文深入解析web.py框架的application类,介绍其构造方法、自动加载功能、URL路由映射及处理器机制,阐述如何通过wsgifunc()实现WSGI兼容接口。
最低0.47元/天 解锁文章
5641

被折叠的 条评论
为什么被折叠?



