配置程序扫描无法获取视图

时间:2014-08-21 18:26:34

标签: python pyramid

Py和Python新手。我正在尝试使用金字塔配置器扫描来查找我的视图,但我似乎遗漏了一些东西,它没有拿起我的“视图”index这里是我的文件:

app.py

from wsgiref.simple_server import make_server
from pyramid.config import Configurator

if __name__ == '__main__':

    config = Configurator()
    config.add_route('home', '/')
    config.scan()

    app = config.make_wsgi_app()
    server = make_server('0.0.0.0', 6543, app)
    server.serve_forever()

和index.py

from pyramid.view import view_config
from pyramid.response import Response

    @view_config(route_name='home')
    def index(request):
        print'Incoming request'
        return Response('<body><h1>Home</h1></body>')

它返回404.但是,如果我删除config.scan()并手动添加视图,它可以正常工作。

from wsgiref.simple_server import make_server
from pyramid.config import Configurator
from index import index

if __name__ == '__main__':

    config = Configurator()
    config.add_route('home', '/')
    config.add_view(index, route_name='home')

1 个答案:

答案 0 :(得分:0)

来自Pyramid文档

  

scan(package = None,categories = None,onerror = None,ignore = None,** kw)[source]   扫描Python包及其任何子包,以查找标记有配置修饰的对象,例如pyramid.view.view_config。找到的任何修饰对象都会影响当前的配置状态。

package参数应该是Python包或模块对象(或者是指代这样的包或模块的虚线Python名称)。如果package为None,则使用调用者的包。在这种情况下,它正在app app或app.py文件中查找装饰。

要修复此添加

config.scan(package='index')

或将app.py重命名为__init__.py