擅长:python、mysql、java
<p>有两种方法可以做到这一点,这取决于您喜欢将代码分隔开的方式。在</p>
<ol>
<li><p>将所有逻辑放入您的视图中,用<code>request.GET.get('action')</code>上的“if”语句分隔。在</p>
<pre><code>config.add_route('plot', '/{project_name}/testruns/{testrun_name}/plots/{plot_name}.png')
config.scan()
@view_config(route_name='plot')
def plot_view(request):
action = request.GET('action')
if action == 'edit':
# do something
return render_to_response('bunseki:templates/form.pt', {}, request)
# return the png
</code></pre></li>
<li><p>使用金字塔的视图查找机制注册多个视图并在它们之间进行委派。在</p>
<pre><code>config.add_route('plot', '/{project_name}/testruns/{testrun_name}/plots/{plot_name}.png')
config.scan()
@view_config(route_name='plot')
def plot_image_view(request):
# return the plot image
@view_config(route_name='plot', request_param='action=edit',
renderer='bunseki:templates/form.pt')
def edit_plot_view(request):
# edit the plot
return {}
# etc..
</code></pre></li>
</ol>
<p>希望这有帮助。这是一个很好的例子,可以注册单个url模式,并对该url上的不同类型的请求使用不同的视图。在</p>