伸缩自如的Flask [day2] blue_print

开始之前,我相信你已经有碰过flask的经验,或是至少知道藉由

pip install Flask

来进行安装。

要提到blue_print,首先要提到为甚么我们要使用他。
当你的网页功能很多,已经超过了30个路由功能挤在了你的app.py。
你的app.py 写了超过500行的程式码,这时候你的PM或是你的客户跑来跟你说我的某个功能要改一下,而且我也不想付你半毛钱。

这时候你的头脑开始高速运转并且烧了起来,这个该死的功能到底在app.py的第几行呢?
你不知道,直到从大大的口中得知了blue_print的存在。

你的生活出现了改变,至少是你的flask程式码的品质出现了改变。
你可以把许多功能分门别类写在不同的py档,并且能从他们的名子中知道哪些功能在那里了。

https://github.com/wilsonsujames/bule_print

你可以把上面的repository 自己git clone下来,也可以按右上角绿色的Code按钮来download zip,或是自己写一个。
你从bule_print-main进到blueprint_test并且看到了main.py,也执行了main.py。

你看见了写在main.py的根路由 return了什么:http://img2.58codes.com/2024/20122678ESrPWWyGPw.png

接着你到达manu1,可以看到:
http://img2.58codes.com/2024/20122678BIL8eg3dSb.png

没错你只要要在其他的py档中这样写:

from flask import BlueprinttestRoute = Blueprint('testRoute', __name__)@testRoute.route('/manu1')  #  路由拿掉刚才标上的生产def testroute():    return '<h1>You win!</h1>'

并且在主程式(目前是main.py)进行引用及注册:

from view.api import testRoute
app.register_blueprint(testRoute, url_prefix='')

你现在可以在好几个资料夹写好几个py档,而且你也可以依据他们的名称快速找到哪一个功能在那里。
至于要不要用url_prefix来让你该blue print都带有一样的前缀,这可以看个人喜好。

注意:
在写HTML的时候,假设用到了jinja及url_for并且前往其中一个blueprint的路由时。
请这样写:

 <a href="{{ url_for('testRoute.testroute') }}">To manu1</a>

其中testRoute为该blueprint的变数名称,testroute为该Route的function名子。
我想第二天就先这样,晚上就看个世界大赛。

[day 1] 开场白[day 2] blue_print[day 3] Factory mode[day 4] JWT token[day 5] session[day 6] Jinja[day 7] Post data with Form tag[day 8] ajax with jquery[day 9] request[day 10] 将资料写进DB(pymongo)[day 11] log with mongoDB[day 12] Sql Database[day 13] 档案上传[day 14] 档案下载 及 其他传值方法[day 15] boostrap 4.6[day 16] API[day 17] Docker image化--安装篇[day 18] Docker image化--运行篇[day 19] Nginx[day 20] Docker compose[day 21] Nginx with https[day 22] pythonanywhere 部署[day 23] GCP app engine (介绍)[day 24] GCP app engine (deploy)[day 25] Flask with web cam[day 26] Flask with ML[day 27] Supervisor[day 28] Flask-Mail[day 29] Line Messaging API[day 30] 结语

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章