【问题标题】:How to rewrite the url in tornado如何在龙卷风中重写网址
【发布时间】:2015-06-03 04:39:24
【问题描述】:

这几天在学习tornado和nginx,对url重写感到困惑。

例如:如果我想制作这样的网址

www.abc.com/username/projectname(用户名和项目名取决于用户)

我有两个解决方案,第一个是使用正则表达式,如

(r'/(w+)/(w+)', IndexHandler)

并尝试从 url 获取 usernameprojectname 并在数据库中进行一些搜索

第二种解决方案是像这样使用 nginx 重写

www.abc.com/username/projectname => abc.domian.com/?us=username&pj=projectname

哪种解决方案是正确的?非常感谢。

【问题讨论】:

    标签: nginx tornado


    【解决方案1】:

    两者都是正确的。在这种情况下,就我个人而言,我会使用第一种形式,这样无论 nginx 是否存在,Tornado 服务器都可以工作(更方便开发和测试),但有时在 nginx 级别进行重写更简单。

    【讨论】:

    • 谢谢 Ben,所以我可以使用 get_argument 从用户输入的 url 中获取参数,然后在数据库中进行搜索?
    • 您可以使用第二种形式的 get_argument() (使用?us=)。在第一种形式中,从路径中提取的值作为参数传递给处理程序的 get() 方法。
    • 你介意给我举个例子吗?我使用 get(self, input): self.write(input) 并想获取“用户名/项目名”但失败了。没有“/”也可以工作。或者我应该使用 self.request.uri 之类的东西?
    • 如果你的路由中有两组括号,那么get方法中会有两个参数:get(self, user, project)
    猜你喜欢
    • 2013-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多