【问题标题】:Trying to figure out URL dispatcher for sluggale URLs like stackoverflow试图找出像 stackoverflow 这样的 sluggale URL 的 URL 调度程序
【发布时间】:2011-02-25 07:15:08
【问题描述】:

我正在使用 Tornado 框架 (Python)。我有 sluggable URLs 工作。但是我在 URL 调度程序中有 3 个不同的条目。我想知道是否有人可以帮我把它变成一条线。

这就是我所拥有的:

(r"/post/([0-9]+)/[a-zA-Z0-9\-]+", SpotHandler),
(r"/post/([0-9]+)/", SpotHandler),
(r"/post/([0-9]+)", SpotHandler),

我希望以下网址都到同一个地方。

http://domain.com/post/14

http://domain.com/post/14/

http://domain.com/post/14/any-text-it-doesnt-matter-what-it-is

【问题讨论】:

    标签: python slug tornado


    【解决方案1】:
    r"/post/([0-9]+)(?:/[a-zA-Z_-]+|/)?"
    

    【讨论】:

      【解决方案2】:

      (r"/post/([0-9]+)/?[a-zA-Z_]*", SpotHandler),

      “?”意味着以前的东西可以存在但不必存在。 “*”表示零个或多个

      【讨论】:

      • @TylerW @mawimawi @zed_0xff 这个 URL 怎么样:http://domain.com/post/14somethinghttp://domain.com/post/14/something/ ~~ @TylerW 如果它应该是 http://domain.com/post/14/something 而他们转到 http://domain.com/post/14/otherthing 呢?我猜这不是业务领域的问题......
      • 正确。我的网站根本不使用结尾刺痛。只是 /post/ 之后的数字。所以 /post/14/string1 和 /post/14/string2 可以做同样的事情。
      • 请记住,路径可以合法地包含 unicode,如果这对您很重要,您的正则表达式不会匹配。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-01
      • 2014-12-13
      • 2012-12-18
      • 2012-10-22
      • 1970-01-01
      • 2012-02-05
      • 1970-01-01
      相关资源
      最近更新 更多