欢迎光临散文网 会员登陆 & 注册

flask学习笔记-视图函数路由规则

2021-10-12 08:25 作者:海鸥之道  | 我要投稿

视图函数路由规则说明

通过url_map可以查看整个flask中的路由信息

输出:

输出是map映射对象,是个列表包含两个路由规则,第一个是url路径+请求,另一个是

static是处理静态文件的,访问方式不指明即默认情况下为get。

1) 通过methods限定访问方式

如果不加methods默认为get访问方式, 如果只定义 post访问方式,则运行下面程序会报错:

打开网址:

会出现请求方式不允许的错误。状态码405。想要允许访问,加上GET即可

2)同一路由装饰多个视图函数:

执行结果:

可以通过设置访问方式,访问到hello 2.

3)同一视图函数用多个路由装饰器

执行结果:

可以看到两个地址都访问同一个视图函数

4)url_for反解析  

使用url_for的函数,通过视图函数的名字找到视图对应的url路径

优点:将来如果修改了URL, 但没有修改该URL对应的函数名,就不用到处支替换URL了.

此时,login访问路径就跳转到index。

5)转换器  尖括号语法

flask作为轻型WEB框架,在web开发中,可能会出现限制用户访问的规则的场景,那么这个时候,就需要过滤指定用户,所以可以使用转换器实现。

转换器的本质是:通过正则表达式匹配路由地址

转换器有下面几种:

int   接受整数

float 接受浮点数

path 和默认的相似,但也接受斜线

注意:

@app.route("/goods_detail/<goods_id>")    # 不加转换器类型默认是字符串规则,匹配除了/的字符

1、自己实现特殊功能的万能转换器:  可以接收正则规则

运行效果:

转换器,是对url中的内容进行匹配和转换!

换器中的内容包括三个:路由匹配的正则regex属性,to_python方法,to_url方法。 regex是对url进行路由匹配,to_python和to_url两个方法是对url参数进行处理的。

 转换器的匹配原理是用户输入请求后,将路径与转换器的self.regex进行匹配。匹配成功后,将路径通过to_python传递给视图函数,返回客户请求。这是常规的匹配路径流程。当客户路径是通过重定向的,则首先通过url_for函数形成匹配的新路径,此匹配的新路径的形成流程是:url_for会调用to_url 形成路径,然后与视图函数匹配。成功后,将路径通过to_python函数将路径传递给视图函数,返回用户请求。

1、regex:匹配url参数的正则表达式

可以通过__init__方法初始化

下面这两个方法都是对url参数进行处理,一个是在调用视图函数之前执行,一个是在路由之前执行:

2、to_python(self, value)方法

当匹配到参数后将自动调用to_python方法将参数进行处理后,在调用视图函数将参数传回给视图函数

3、to_url(self, url)方法

使用url_for()方法的时候,先调用to_url对传入的url参数进行处理,处理完成后再进行路由




flask学习笔记-视图函数路由规则的评论 (共 条)

分享到微博请遵守国家法律