我想将路由配置正确外包给相应的模块。为此,金字塔文档指定我可以定义:
def includeme(config):
config.add_route('foo_list', '/foo', factory='.api.foo.models.example_factory')
我的文件夹结构如下:
/projectname/api/foo
在示例文件夹中,有以下文件:
__init__.py (with includeme()-function)
views.py
models.py
现在,我需要在应用程序初始化时包含此“ foo”模块。 这就是我定义的原因:
文件:
/projectname/__init__.py
代码:
def main(global_config, **settings):
config.include('.api.foo')
但是当我尝试运行应用程序时,金字塔会引发以下异常:
ModuleNotFoundError: No module named 'projectname.api.foo.api'
(已复制并粘贴-它搜索/ api / foo / api-这是不正确的)
我没有考虑任何配置因素吗? 我尝试了以下方法:
Changing the /projectname/__init__.py code into:
config.include('.api.foo.includeme')
这将导致相同的错误。
如果我将功能从includeme重命名为其他任何内容,它就会显示
pyramid.exceptions.ConfigurationError: module 'projectname.api.foo' has no attribute 'includeme'
有什么建议吗?