擅长:python、mysql、java
<p><strong>TL;DR:</strong>使用Tornado的内置路由器是不可能的。在</p>
<p>Tornado将处理程序模式的regexp编译隐藏得很深,因此@stema建议使用<code>re.Unicode</code>标志是很困难的,因为它不清楚在哪里传递标志。有两种方法可以解决这个问题:子类<code>URLSpec</code>并重写<code>__init__</code>函数,或者在模式中添加一个标志前缀。在</p>
<p>第一个选择是大量的工作。第二个选项利用Python的<code>re</code>模块中的一个特性,其中模式可以在模式的开头指定<code>(?u)</code>,而不是将<code>re.UNICODE</code>标志作为参数传递。在</p>
<p>不幸的是,这两个选项都不起作用,因为Tornado在将请求URL解码为unicode字符串之前,会根据URL<em>匹配模式。因此,使用Unicode标志编译模式没有任何效果,因为您是根据百分比编码的ASCII url而不是Unicode字符串进行匹配。在</p>