<p>您配置的路由只能在字符串文本<code>[list]</code>上匹配。路由不能在Python对象上匹配,只能匹配字符串和替换标记。来自<a href="https://docs.pylonsproject.org/projects/pyramid/en/latest/narr/urldispatch.html#route-pattern-syntax" rel="nofollow noreferrer">Route Pattern Syntax under URL Dispatch</a>:</p>
<blockquote>
<p>A pattern segment (an individual item between <code>/</code> characters in the pattern) may either be a literal string (e.g., <code>foo</code>) or it may be a replacement marker (e.g., <code>{foo}</code>), or a certain combination of both.</p>
</blockquote>
<p>不过,您可以从request对象中提取multidict。在</p>
<pre><code># Conjugation of English verbs is horrible
config.add_route('show_chosen_categories', '/categories/')
</code></pre>
<p>假设您有一个名为相同的复选框列表,或者表单中有一个select multiple input,其中一个输入名为<code>category</code>,那么将生成如下所示的请求参数:</p>
^{pr2}$
<p>然后,任何以<code>categories</code>开头的URL都将匹配,并且请求参数将在视图中可用,具体取决于表单操作:</p>
<pre><code># form action="POST"
request.POST.getall('category')
# form action="GET"
request.GET.getall('category')
>>> [1, 2]
</code></pre>
<p>有关详细信息,请参见<a href="https://docs.pylonsproject.org/projects/pyramid/en/latest/narr/webob.html#multidict" rel="nofollow noreferrer">Multidict under Request and Response Objects</a>。在</p>