关于flask中路由和视图函数的对应关系的疑问

来源:3-10 深入了解flask路由

邱晨100

2019-10-26

老师好,在您3-10课程关于flask路由讲解中,您讲到了路由、视图函数以及它们中间的endpoint它们三者的关系,由于框架不单单要求通过路由能找到视图函数,还需要视图函数能反向找到对应的路由,因此引入了endpoint这个事物。我看到您带领我们阅读flask源码里面,有两个关键步骤:self.url_map.add(rule) ,还有一个是self.view_functions[endpoint] = view_func。正是因为它们,所以可以通过路由检索到对应到endpoint,再通过endpoint来找到了对应到视图函数。
我要问到问题是,引入了endpoint也没解决双向检索到问题啊,它们依然只能单向检索,那这个endpoint如何来保证可以反向通过视图函数检索到路由呢?

写回答

2回答

7七月

2019-10-27

self.view_functions这个关系记录了endpoint和view_func的关系,为什么就找不到呢?如果要深入指导他是怎么知道的,直接开更底层的源码就可以了。

0
1
邱晨100
非常感谢!
2019-10-27
共1条回复

7七月

2019-10-27

你是如何推断出 无法解决双向检索的?

0
1
邱晨100
因为url_map中路由是key,值是endpoint。view_functions中,endpoint是key,值是视图函数。如果要反向检索,需要首先通过视图函数能找到endpoint,再从endpoint找到路由才行啊。
2019-10-27
共1条回复

Python Flask高级编程之从0到1开发《鱼书》精品项目

7月老师深入浅出剖析Flask核心机制,和你一起探讨Python高级编程

2735 学习 · 1267 问题

查看课程