hagezhou
V2EX  ›  Flask

flask url 匹配问题

  •  
  •   hagezhou · Aug 25, 2017 · 5243 views
    This topic created in 3368 days ago, the information mentioned may be changed or developed.

    初学 flask,关于 url 的匹配上有个问题

    @app.route("/path/<url_path>") def get_path(url_path): pass

    这样的话通过 request.path 拿到 path 后面一级的内容,比如 url 是 http://127.0.0.1:5000/path/qw request.path 是 /path/qw

    但如果我的 url 是 http://127.0.0.1:5000/path/qw/adfa 那就肯定报错了,所以有什么办法能把后面所有的内容拿到吗?

    8 replies  •  2017-08-30 18:03:33 +08:00
    John60676
    John60676
    Aug 25, 2017
    1
    还能有这种操作,关注一下,看看有没有 dalao 能解决
    TJT
    TJT
    Aug 25, 2017
    2
    @app.route('/path/<path:path_name>')
    def path(path_name):
    ----return path_name

    Next topic
    jimqlee
    jimqlee
    Aug 25, 2017
    3
    试试这样:

    @app.route('/path/<x>/<y>')
    @app.route('/path/<x>')
    def get_path(y=None): pass
    hagezhou
    hagezhou
    OP
    Aug 25, 2017
    4
    @TJT 可以的,多谢
    hagezhou
    hagezhou
    OP
    Aug 25, 2017
    5
    @jimqlee 你这种应该只支持多一级吧,多两极的话是不是就不可以了?
    xiaozizayang
    xiaozizayang
    Aug 25, 2017 via Android
    6
    我也是刚学 一点建议 有错勿喷 我觉得可以 但是你的写法要变 不能直接在你这个处理函数上面加 @ app.route 可以在函数里加个参数用来接受 path 然后用 flask 自带的自定义每次请求前的 request 装饰器做中间处理层 引用 requests 获取你要的 path 作为参数传给这个处理函数 就可以了
    John60676
    John60676
    Aug 28, 2017
    7
    @jimqlee 我猜题主的意思是直接获取后面所有路径,不论多少级
    jimqlee
    jimqlee
    Aug 30, 2017
    8
    @John60676
    @hagezhou

    #2 的做法是对的,我没想到多级的问题
    另外,我居然收不到你们的回复
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2089 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 06:11 · PVG 14:11 · LAX 22:11 · JFK 01:11
    ♥ Do have faith in what you're doing.