url路径是否有明显的差异,路径是否以斜线结束?

时间:2013-12-05 12:13:47

标签: url web path tornado

我遇到的标题问题是当我用tornado运行一个问候世界的例子时 像这样:

import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web

from tornado.options import define, options
define("port", default=9999, help="run on the given port", type=int)

class IndexHandler(tornado.web.RequestHandler):
    def get(self):
        greeting = self.get_argument('greeting', 'Hello')
        self.write(greeting + ', friendly user!')

if __name__ == "__main__":
    tornado.options.parse_command_line()
    app = tornado.web.Application(handlers=[(r"/hello", IndexHandler)])
    http_server = tornado.httpserver.HTTPServer(app)
    http_server.listen(options.port)
    tornado.ioloop.IOLoop.instance().start()

我运行此代码并运行如下命令: curl http://localhost:9999/hello,它有200个HTTP状态。

但是当我用斜线运行命令关闭路径时: curl http://localhost:9999/hello/,它获得了404 HTTP状态。

我知道代码中的问题可能是这一行:

app =  tornado.web.Application(handlers=[(r"/hello", IndexHandler)])

所以我想知道是否有一种简单的方法可以通过访问http://localhost:9999/hellohttp://localhost:9999/hello/来修复它。

而且我也非常想了解url路径与使用斜杠(/)关闭的路径的区别,如上面的http://localhost:9999/hellohttp://localhost:9999/hello/,或者有时我们put文件。

1 个答案:

答案 0 :(得分:4)

  • 路径路径是一个正则表达式,因此您可以将其设置为r'/hello/?',它将同时接受斜杠和斜杠。
  • 关于网址格式,我在搜索结果中找到了另一个问题,按投票排序:When should I use a trailing slash in my URL?