sid*_*der 2 python pylons mako pyramid
尝试使用Pyo框架时使用Mako,进入development.ini文件,然后添加该行
mako.directories = TestProject:templates
Run Code Online (Sandbox Code Playgroud)
在:
[app:TestProject]
Run Code Online (Sandbox Code Playgroud)
然后在templates子目录中创建一个名为template.mako的简单html文件,我得到一个:
ImportError: No module named TestProject
Run Code Online (Sandbox Code Playgroud)
但我不明白为什么在上述步骤之后会发生这种情况.为什么这些步骤会产生importError?
更多的错误:
URL: http://localhost:6543/
File 'C:\\env\\lib\\site-packages\\weberror-0.10.3-py2.7.egg\\weberror\\evalexception.py', line 431 in respond
app_iter = self.application(environ, detect_start_response)
File 'C:\\env\\lib\\site-packages\\pyramid-1.0-py2.7.egg\\pyramid\\router.py', line 158 in __call__
response = view_callable(context, request)
File 'C:\\env\\lib\\site-packages\\pyramid-1.0-py2.7.egg\\pyramid\\config.py', line 2839 in _rendered_view
context)
File 'C:\\env\\lib\\site-packages\\pyramid-1.0-py2.7.egg\\pyramid\\renderers.py', line 294 in render_view
request=request)
File 'C:\\env\\lib\\site-packages\\pyramid-1.0-py2.7.egg\\pyramid\\renderers.py', line 322 in render_to_response
result = self.render(value, system_values, request=request)
File 'C:\\env\\lib\\site-packages\\pyramid-1.0-py2.7.egg\\pyramid\\renderers.py', line 298 in render
renderer = self.renderer
File 'C:\\env\\lib\\site-packages\\pyramid-1.0-py2.7.egg\\pyramid\\decorator.py', line 17 in __get__
val = self.wrapped(inst)
File 'C:\\env\\lib\\site-packages\\pyramid-1.0-py2.7.egg\\pyramid\\renderers.py', line 280 in renderer
return factory(self)
File 'C:\\env\\lib\\site-packages\\pyramid-1.0-py2.7.egg\\pyramid\\mako_templating.py', line 77 in renderer_factory
directories = [ abspath_from_asset_spec(d) for d in directories ]
File 'C:\\env\\lib\\site-packages\\pyramid-1.0-py2.7.egg\\pyramid\\asset.py', line 207 in abspath_from_asset_spec
return pkg_resources.resource_filename(pname, filename)
File 'C:\\env\\lib\\site-packages\\setuptools-0.6c12dev_r88124-py2.7.egg\\pkg_resources.py', line 881 in resource_filename
File 'C:\\env\\lib\\site-packages\\setuptools-0.6c12dev_r88124-py2.7.egg\\pkg_resources.py', line 201 in get_provider
ImportError: No module named TestProject
Run Code Online (Sandbox Code Playgroud)
总结:
编辑文件development.ini
并添加以下部分[app:MyProject]
:
mako.directories = myproject:templates
现在我们可以打开文件/MyProject/myproject/__init__.py
并添加如下行:
config.add_route( '富', '/富',视图= 'myproject.views.foo',view_renderer = 'foo.mako')
这将使模板位于:
/MyProject/myproject/templates/foo.mako
注意:MyProject和myproject是您的项目的名称.尊重这个案子.
记得在production.ini
文件中进行相同的配置!
编辑:我在1.3a1版金字塔中看到(2011-12-09)功能部分中的更改日志:
使用Mako模板不再需要mako.directories设置原理:可以使用绝对资产规范指定Mako模板渲染器.整个应用程序可以使用此类资产规范编写,不需要有序的查找路径.
归档时间: |
|
查看次数: |
3665 次 |
最近记录: |