env35/lib/python3.5/site-packages/pyramid/
其中env35是我创建的虚拟环境。但是,如果指定了完整路径,它将起作用。它还将使用相对路径,使用jinja2作为模板引擎。
从手册中
添加视图(…..,渲染器…)
命名渲染器实现。如果渲染器值没有
渲染器实现,并将使用该渲染器实现
从视图返回值构造响应。如果渲染器
用于查找将要传递的渲染器实现
完整路径。渲染器实现将用于构造
来自视图的响应返回值。
当渲染器是路径时,尽管路径通常只是一个简单的相对路径名(例如templates/foo.pt,这意味着
绝对值,在UNIX上以斜杠开头,在UNIX上以驱动器号前缀开头
窗户。路径也可以是表单中的资产规范
一些星罗棋布的。包名称:相对/路径,可以寻址
位于单独包中的模板资产。
未经修改传回上游金字塔机械)。
export VENV=~/Documents/app_projects/pyramid_tutorial/env35
python3 -m venv $VENV
source $VENV/bin/activate #activate the virtual environment
pip install --upgrade pip
pip install pyramid
pip install wheel
pip install pyramid_chameleon
pip install pyramid_jinja2
我的文件结构:
pyramid_tutorial
env35
bin
...
templates
hello.jinja2
hello.pt
test_app.py
测试应用程序。py:
from wsgiref.simple_server import make_server
from pyramid.config import Configurator
from pyramid.response import Response
from pyramid.view import view_config
def hello(request):
return dict(name='Bugs Bunny')
if __name__ == '__main__':
config = Configurator()
config.include('pyramid_chameleon')
config.include('pyramid_jinja2')
#This does not work... http://localhost:6543/chameleon
config.add_route('hello_world_1', '/chameleon')
config.add_view(hello, route_name='hello_world_1', renderer='templates/hello.pt')
# ValueError: Missing template asset: templates/hello.pt (/home/david/Documents/app_projects/pyramid_tutorial/env35/lib/python3.5/site-packages/pyramid/templates/hello.pt)
#This works... http://localhost:6543/chameleon2
config.add_route('hello_world_2', '/chameleon2')
config.add_view(hello, route_name='hello_world_2', renderer='/home/david/Documents/app_projects/pyramid_tutorial/templates/hello.pt')
#This works... http://localhost:6543/jinja
config.add_route('hello_world_3', '/jinja')
config.add_view(hello, route_name='hello_world_3', renderer='templates/hello.jinja2')
app = config.make_wsgi_app()
server = make_server('0.0.0.0', 6543, app)
print ('Serving at http://127.0.0.1:6543')
server.serve_forever()
你好pt:
<p>Hello <strong>${name}</strong>! (Chameleon renderer)</p>
<p>Hello <strong>{{name}}</strong>! (jinja2 renderer)</p>