开始之前,我相信你已经有碰过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了什麽:
接着你到达manu1,可以看到:
没错你只要要在其他的py档中这样写:
from flask import Blueprint
testRoute = 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名子。
我想第二天就先这样,晚上就看个世界大赛。
今日一样教学Django class registration_info(models.Model)...
允许使用者输入几乎是每个系统都需要的功能,为了确保资料内容或格式的正确性,通常会加上一些资料验证规则...
大家好~ 昨天我们已经成功拉取 Google Analytics 资料到 AWS,可是我们发现『抓取...
昨天分享如何新增、修改、删除、印出 Realm 资料库的资料,以及读取 Realm 资料库的资料去更...
Quartz.Net 提供直接整合.Net Core DI的扩展,安装底下的套件即可 Install...