flask学习笔记-视图函数路由规则
视图函数路由规则说明
通过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参数进行处理,处理完成后再进行路由