7.路由转换器

项目名称为 P18-P25 second_bule_print

目录

1  不添加过滤器

2  添加过滤器

2.1  any过滤器

2.2  path过滤器

2.3  uuid 过滤器

2.4  其他过滤器

2.5  自定义过滤器


1  不添加过滤器

  • 路由的转换实际上就是对get请求的操作

我们一般使用路由转换处理非敏感的数据(如小说网站的小说页数等),在flask中我们这样写

这时我们访问一下该路由

2  添加过滤器

那么如果我想对路由的格式有要求,那么我应该这样写

这里我们要求的是整形,我们先给个整形访问一下

发现函数接收的变量也是整形

我们现在给一串字符试一下

发现如果是一串字符就会返回404,404就不会print出我们的内容了

除了整形之外,Flask还内置了其他类型的转换器

  • default 默认,无限制
  • string 字符串,相当于无限制,如果你输入了一个18进去,它是字符串类型的,在默认中输入18进去也是字符串类型的

2.1  any过滤器

前两个相当于没有,下面我们给一个any的例子

如果不在这个迭代器中的元素就会返404,我们访问一个在迭代器中的

  • 迭代器中的元素类型必须为字符

2.2  path过滤器

之后我们给一个path过滤器的例子

感觉上和string的差不多,我们后续如果有用到不同的我们再说

2.3  uuid 过滤器

uuid说明 UUID_百度百科

我们也简单用一下,后面如果提到会再讲

2.4  其他过滤器

我们也可以对传进来的数据设置最大值或最小值,那么我们应该这样写

  • 把min改为max就是对最大值的限制

我们先输入18试一下

发现没有问题,我们再输入16试一下

发现返回404

这里我们就不测试所有的了,后面用到会再提

2.5  自定义过滤器

上面提到的过滤器除了int,float其他的其实一般都不用,我们一般会自己写一套方法进行过滤,我们这样写

首先导入werkzeug,然后使用其中的BaseConverter,BaseConvter是自定义过滤器的基类

之后我们自定义一个类,里面创建后搞一个属性regex,这个名称是固定的,然后在里面写上正则表达式

之后使用url_map把过滤器注册给app,之后写上路由和视图

然后我们访问一下

自定义过滤器一共有三个变量

  • custom_class 过滤器的类
  • custom 过滤器的名字
  • custom_num 过滤器给路由与视图的变量
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Suyuoa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值