點擊上方「Python進擊者」,選擇「星標」公衆號
前端
超級無敵乾貨第一時間推給你!!!python
各位小夥伴們好,今天主要給你們推薦一個我近期遇到的一個Flask項目。爲何推薦?固然是很牛逼的纔敢拿出來。react
其實不少人會發現Python的web項目可能相對於Java的web項目有一個區別,雖然可能不是很明顯,可是區別確實是存在的。那就是 架構 沒有體現的那麼明顯。git
例如在Flask項目中,咱們只須要導入flask包,就能夠稱之爲是一個flask項目。可是Java中就不是導一個包就能說這是一個web項目。web
因此,在Flask項目中架構牛逼的項目真的很珍貴,今天給你們推薦的項目架構是我見過flask項目中架構最棒的一個!數據庫
Redash
官網:https://redash.io/flask
![](http://static.javashuo.com/static/loading.gif)
Redash是一款開源的BI工具,提供了基於web的數據庫查詢和數據可視化功能。後端
推薦給你們是由於近期我在二次開發redash的一些部分,總體的感覺就是這個架構太棒了!我認爲就算你不去二次開發它,可是你去了解它,看它的代碼,你也會收穫到不少意外的驚喜。api
整個項目所涉及的一些開源技術以下:微信
- Python
- AngularJS
- PostgreSQL
- Redis
這個項目在gitee上也進行了開源,這裏給你們連接:
https://gitee.com/mirrors/redash
![](http://static.javashuo.com/static/loading.gif)
這個項目是先後端分離的,若是不懂前端的朋友能夠單獨看redash文件裏的代碼。
![](http://static.javashuo.com/static/loading.gif)
這裏我把一些重要的文件標識出來,這幾個文件夾內的代碼是主要的精髓,固然你從總體的代碼上了解後,你會發現這個項目很是適合二次開發,這說明了這個項目的拓展性很是好。
這一點其實也突出了一個項目的優秀,有一部分緣由是它的拓展性如何,若是拓展性很高,也表明着這個項目的可能性越多,思想與思想之間的碰撞也越多。
如何在redash增長一個功能模塊?
這一部分適合給已經看過源碼的朋友。這裏講的只是後端部分,前端部分了解react的朋友應該也能立刻看出來。
第一步:前往models文件夾建立你這個功能所需的數據庫字段。
![](http://static.javashuo.com/static/loading.gif)
第二步:前往handlers文件夾編寫有關於你這個功能的具體代碼
![](http://static.javashuo.com/static/loading.gif)
第三步:將本身所寫的功能,添加至api.py文件中,按照相同的格式分配接口
![](http://static.javashuo.com/static/loading.gif)
這樣就可以新增一個功能模塊了,可是前提仍是瞭解我上面紅框的具體代碼,這樣你才能跟着它的架構來新增功能,而不是跟着本身的思路來。
我是kuls
歡迎加我微信交流學習 閱讀更多精彩文章,能夠關注我! ![]()
![]()
本文分享自微信公衆號 - Python進擊者(JAVAandPythonJun)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。