2020年2月10日 星期一

Flask 的 Blueprint -- 元件協定

Flask 有個全域的 app 變數,這樣 expose 出一個執行期物件的做法, Delphi 或更早的 smalltalk 都做過,效果也都不錯,甚至還能提供元件熱插拔的神奇功能

但 Blueprint 只是著眼在對一個專案的元件化,沒有(也不需要)熱插拔。所以使用它的套件模組只能算得上是個"準"套件。

一個 web app 必需提供對網址的解析,http 的規範讓 uri 幾乎可以無縫接軌到介面端 soap / web service 及實做端的 views/templates/statics,而 Blueprint 則為這樣的積木提供了膠水,把元件們組合成一個 app。

照例上幾個參考的網址

https://stackoverflow.com/questions/24420857/what-are-flask-blueprints-exactly

A blueprint is a template for generating a "section" of a web application.

目前已經有很多套件可以在安裝後利用少許設定嵌入專案,flask 流多是使用 Blueprint

http://docs.jinkan.org/docs/flask/blueprints.html

這是官方文件的說明,對某些領域解決方案這可能對應到所謂的 router

https://spacewander.github.io/explore-flask-zh/7-blueprints.html

這是有點長的介紹,有人翻譯為中文,舉的例子不錯

http://www.bjhee.com/flask-ad6.html

程式多了起來,此文著重程式設定

https://hackmd.io/@shaoeChen/H1HIg0kqW?type=view

純使用者觀點

https://martychen920.blogspot.com/2017/09/python-flask.html

另一個使用者觀點