我遇到的标题问题是当我用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/hello
和http://localhost:9999/hello/
来修复它。
而且我也非常想了解url路径与使用斜杠(/)关闭的路径的区别,如上面的http://localhost:9999/hello
和http://localhost:9999/hello/
,或者有时我们put
文件。
答案 0 :(得分:4)
r'/hello/?'
,它将同时接受斜杠和斜杠。