Flask

Flask怎么接收多层url

2019-07-31  本文已影响0人  老胡聊聊天

1、举例说明

比如这样一个url,用来按名字查询电影:
http://wowdata.top/movie/name/复仇者联盟
Flask对应的router是:/movie/name/<moviename>

问题来了:
如果用户查询的名称里面带着/,比如http://wowdata.top/movie/name/复仇者联盟/2019
那上面的router就匹配不上了,可以写成:/movie/name/<path:moviename>

这样就可以得到 moviename=复仇者联盟/2019,然后再做处理就行了


2、多层URL

上面的应用实际上只是为了解决貌似是多层url的问题,还有一种场景是真的多级url,比如简书的图片地址,可以看到后面的/w/1240,这里实际上相当于?w=1240,但是这个参数并不是必传的,如果不用path的方式,就需要定义多个路由,采用path的方式只需要定义一个/upload_images/<path:subpath>就可以了
https://img.haomeiwen.com/i8179604/af71930caaa912af.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240

这一招在伪原创里面很有用


3、其他类型参数

参数支持这些类型的值,用path或者any应该都是可以的


image.png

4、你懂的

觉得有用就关注一波吧


老胡的公众号,关注一波吧
上一篇下一篇

猜你喜欢

热点阅读