这里有一个Python程序。 它使用CherryPy创建一个服务器。在
# coding:utf-8
import os.path
import cherrypy
from app import application
def main():
try:
currentDir_s = os.path.dirname(os.path.abspath(__file__))
except:
currentDir_s = os.path.dirname(os.path.abspath(sys.executable))
cherrypy.Application.currentDir_s = currentDir_s
configFileName_s = 'server.conf'
if os.path.exists(configFileName_s) == False:
configFileName_s = None
cherrypy.engine.autoreload.unsubscribe()
cherrypy.engine.timeout_monitor.unsubscribe()
cherrypy.quickstart(application.Application_cl(), config=configFileName_s)
if __name__ == '__main__':
main()
在“中”服务器配置“它配置服务器:
^{pr2}$有一件事,我不明白,这行(python代码中的第13行):
cherrypy.Application.currentDir_s = currentDir_s
我在网上查了一下,但什么也没找到。做什么“cherrypy应用程序“是吗?为什么我要做这个任务(cherrypy.Application.currentDir_s公司=当前目录?在
我搜索了cherrypy的源代码,这里是我找到的。 在
_cptree.py
模块中,您将找到Application
类。下面是一个Tree
类,它有mount
方法,我们用它来绑定应用程序(例如cherrypy.tree.mount(Root(), "/", config=config)
)当你查看这个方法的内部时,你会看到下面的代码
^{pr2}$因此,代码说明传递给
mount
方法的每个对象(应用程序)要么是Application
实例,要么是包装在Application
实例中。那为什么呢?当您检查Application
类上面的Tree
类时,您将看到一个如下所示的__call__
方法是的,你现在看到了,它是^{} 接口。
因此,
Application
是cherrypy应用程序的wsgi包装器。 当你检查cherrypy的源代码时,你会学到很多东西。我希望这个答案对你有帮助。在相关问题 更多 >
编程相关推荐