Flask 路由映射对于双斜线的处理 //a//b
生活随笔
收集整理的這篇文章主要介紹了
Flask 路由映射对于双斜线的处理 //a//b
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
例子
from flask import Flask import time from tornado.wsgi import WSGIContainer from tornado.httpserver import HTTPServer from tornado.ioloop import IOLoopapp = Flask(__name__)@app.route('//abc//a') def index():# time.sleep(5)return 'OK'@app.route('/abc//a') def index1():return 'hhhh'if __name__ == '__main__':http_server = HTTPServer(WSGIContainer(app))http_server.listen(5000)IOLoop.instance().start()對(duì)于Flask,如上面這樣的路由映射,是如何處理的呢?
我們?nèi)绻\(yùn)行一下會(huì)發(fā)現(xiàn),我們無(wú)論訪問(wèn) 'http://127.0.0.1:5000//abc//a' 還是 'http://127.0.0.1:5000/abc//a'返回的結(jié)果都是函數(shù)index1的結(jié)果,這是為什么?
分析源代碼,debug我們發(fā)現(xiàn),在werkzeug/routing.py中的1530行,path傳遞的過(guò)程中,werkzeug會(huì)將path_info-->>' //abc//a '的左側(cè)的 ' / '去掉,然后再和前面的
http://127.0.0.1:5000拼接,所以訪問(wèn)'http://127.0.0.1:5000//abc//a'這個(gè)路由會(huì)路由到?'http://127.0.0.1:5000/abc//a',返回的是index1函數(shù)的結(jié)果。
?
轉(zhuǎn)載于:https://www.cnblogs.com/lycsdhr/p/11203566.html
總結(jié)
以上是生活随笔為你收集整理的Flask 路由映射对于双斜线的处理 //a//b的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 高通QFIL刷机指南
- 下一篇: paddle模块的详细介绍