flask的路由

前言

在flask应用中,路由是指用户请求的URL和视图函数之间的映射。flask框架会根据http请求的URL在路由表当中,匹配预定义的URL规则,找到对应的视图函数,并将视图函数的执行结果返回WSGI服务器

映射路径

route装饰器 :可以使用Flask应用实例的route装饰器将一个URL规则绑定到 一个视图函数上

1.不同视图函数有着相同装饰器的情况

定义两个不同的视图函数使用同一个装饰器

结果

访问/hello所展示的页面

可以看到,由于hello2函数路径和请求方式和hello1一样,会被hello1覆盖掉,所以在访问的时候只会执行hello1,并不会执行hello2

修改两个视图函数的请求方式:

修改两个函数的访问方式

修改之后再次访问

修改访问方式后再次访问/hello

可以看到这次访问/hello是访问到了hello2函数,因为访问页面的默认方式是get请求。尽管现在hello1和hello2路径相同,但是现在请求方式不一致,是看成单独的逻辑

2.同一视图函数有不同装饰器

上面讲了不同视图函数使用同一装饰器的情况,那如果反过来,同一个视图函数上面有不同的装饰器呢?

定义装饰器和函数

对/h1和/h2都分别进行访问

访问/h1


访问/h2

可以看到无论是访问h1还是h2,都是访问到同一个页面,实现了两个不同的URL对应同一个视图函数。

3.flask中的重定向

在访问页面的时候经常会出现重定向的操作,比如在网上进行购物的时候,无论是下单结算,或者是查看商品物流的过程,都是需要确定好用户是已经登录的情况下才能进行操作的,如果是没有登录就会先跳转到登录页面才能执行上面的操作,那么在flask中如何进行重定向呢?

首先要在flask中导入重定向的函数

导入redirect函数

定义要进行重定向的视图函数

定义login视图函数

或者也可以使用flask中的方法url_for(这个也是需要在上面进行导入)

使用url_for方法进行重定向

这个方式是获取到函数名之后,自行找到对应的访问路径进行解析并返回。这个方法可以避免把路径写死,如果到后面路径需要进行调整的时候就不需要再对路径进行修改,减少了很多工作量

当我们访问login的时候

在URL中访问login

然而在按下回车键之后,最终的展示页面却跳转到了hello2函数的页面当中

最终展示的页面

4.路由参数提取

转换器有下面几种

常见的转换器

接下来使用一个int转换器获取URL当中的ID并且返回到页面当中进行显示。

注意转换器的使用格式为:<转换器类型:参数名称>

定义int转换器

注意:视图函数里的参数和装饰器里面的参数名要一致

访问goods

可以看到通过这样的方式获取到了URL当中的数值123并且在页面当中展示出来

你可能感兴趣的:(flask的路由)