hagezhou
V2EX  ›  Flask

flask url 匹配问题

  •  
  •   hagezhou · Aug 25, 2017 · 4813 views
    This topic created in 3212 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
        1
    John60676  
       Aug 25, 2017
    还能有这种操作,关注一下,看看有没有 dalao 能解决
    TJT
        2
    TJT  
       Aug 25, 2017
    @app.route('/path/<path:path_name>')
    def path(path_name):
    ----return path_name

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

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

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