Python的蓝图是什么?
本文最后更新于:2022年5月4日 晚上
介绍
Flask是一个轻量级的python web框架,相对于django,flask只需要很简单的几行代码就可以跑起一个小型的web后台。但是当flask项目开始慢慢扩大的时候,就会出现代码过于混乱,不好管理等现象。此时就需要用到flask的蓝图功能
详细
如果用过django就很容易理解蓝图功能
可以把蓝图比喻成一个app,假如需要写一个论坛,论坛会包含很多的模块。比如:用户管理、文章管理等。 为了方便管理代码,就使用flask创建一个用户管理的蓝图、一个文章管理的蓝图,再把它们联合起来运行
基础的flask代码(start.py)
1 |
|
在执行这个文件后,我们就可以通过 http://127.0.0.1/ 访问,会看到”I’m start index”的字样
一个论坛肯定不会只有’/‘这一条路由,如果把所有路由都写在同一个py文件里,那会对后期维护造成极大的困扰
创建一个蓝图
一段创建蓝图的代码(article.py)
1 |
|
可以看到我们首先需要引用flask的 Blueprint 模块,然后像创建普通flask一样创建一个Blueprint对象,其中第一个参数为该app的名字,会在使用url_for()的时候用到。一个flask项目里蓝图的名字不可以重复。
接着就是给该app创建路由,可能有的人会疑惑,为什么article的路由也是’/‘,不会和start.py里的路由冲突吗?
接下来回到start.py
1 |
|
可以看到多了两行代码,第一个是从article文件引用名为article的Blueprint对象。
第二就是注册一个蓝图,第一个参数为蓝图对象。重点在第二个参数,我们设置了 url_prefix=’/article’ 。 这样当用户访问 http://127.0.0.1/article/ 的时候,就会在article的蓝图里寻找’/‘这个路由,而不是在start.py里找’/‘路由,因此避免了冲突
访问http://127.0.0.1/article/ 时,就会看到”I’m article index”
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!