Flask怎么接收多层url

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://upload-images.jianshu.io/upload_images/8179604-af71930caaa912af.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240

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


3、其他类型参数

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


image.png

4、你懂的

觉得有用就关注一波吧


老胡的公众号,关注一波吧
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。