这是非常具体的什么,我试图这样做,我开始描述它是什么:使用查询字符串
- 金字塔应用中投放情节像http://localhost:6543/path/to/myplot/plot001.png
- 如果情节不可用另一个图像被提供(work.png)
- 另一部分是变形视图,它提供了一个HTML表单来输入配置,例如:http://localhost:6543/path/to/myplot/plot001.png?action=edit。请注意查询字符串“action = edit”。
- 配置由数据文件,模板等组成
- 窗体具有save(保存配置)和渲染按钮(http:// localhost:6543/path/to/myplot/plot001.png?action = render )。将结果呈现为一个png文件,然后以静态方式使用。
我想出了所有使用Matplotlib等渲染的东西,但我是Pyramid和Deform的新手。我也有一个工作视图,用于从文件中提供图表。变形也是一种作品。目前我还不清楚如何最好地构建ULR来区分服务,编辑和呈现用例。我猜在金字塔这里说这意味着如何配置serve_view和edit_view的路由。
__init__.py:
config.add_route('serve_route',
'/{project_name}/testruns/{testrun_name}/plots/{plot_name}.png')
config.add_route('edit_route',
'/{project_name}/testruns/{testrun_name}/plots/{plot_name}.png')
# can I use query strings like "?action=edit" here to distinguish the difference?
views.py:
@view_config(context=Root, route_name='serve_route')
def plot_view(context, request):
...
@view_config(context=Root, renderer='bunseki:templates/form.pt', route_name='edit_route')
def edit_view(request):
...
我金字塔手册我找不到参考如何在路线中设置参数。我想一个指向一些文档或样本的指针就足够了,我可以自己弄清楚细节。谢谢!
金字塔有他们称之为Multidict的机制。我认为这是访问查询字符串的方式。我将合并两个视图的情节和编辑成一个,并使用如下所示的区别: if request.GET.getall('action')中的'编辑': #编辑配置 – mark
你在说什么上面的评论是好的,这可能是我会这样做的方式;您可以将自定义谓词交替添加到add_route语句中,以便匹配查询字符串中的两个路由。请参阅http://docs.pylonsproject.org/projects/pyramid/1.1/narr/urldispatch.html#custom-route-predicates –