配置扫描未获取视图
我刚接触Python和Py。我想让Pyramid的配置器扫描我的视图,但似乎有什么地方出错了,它没有找到我的“视图”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
来自Pyramid文档
scan(package=None, categories=None, onerror=None, ignore=None, **kw)[source] 扫描一个Python包及其子包,寻找那些带有特定配置标记的对象,比如pyramid.view.view_config。找到的任何带标记的对象都会影响当前的配置状态。
这里的package参数应该是一个Python包或模块对象(或者是指向这样的包或模块的点分名称)。如果package是None,就会使用调用者的包。在这种情况下,它会在app包或app.py文件中查找标记。
要解决这个问题,可以添加
config.scan(package='index')
或者把app.py
重命名为__init__.py