取自實驗樓實驗Flask開發輕博客
作為Flask入門系列感覺不錯,最近在學習《 Flask Web 開發 》,與這個實驗配合能鞏固所學。
并不是會員課程,建議在自己電腦上使用virtulenv進行實驗。
實驗源碼在此。
我的代碼在此。
在官方的代碼上稍作修改,還在更新中...
--- 4月4日更新 ---
實驗完畢,可查看提交歷史,對比各個版本的區別。
實驗完畢,總結一下我的收獲。
1
Flask作為一個優秀的Python Web框架,有良好的擴展性和易用性,使用很方便,需要實現的功能可以使用相應的擴展,解耦做得非常好,以前沒怎么接觸Web開發,對于Flask的這種處理方式還是非常有好感的,配合Jinja2模板引擎能實現很強大的功能,雖然現在還不是很適應Jinja2的寫法。
2
項目的組織結構。本項目使用了一般較為推薦的結構。關于這個話題可以參考知乎專欄的一篇文章,講的很詳細,如需了解更多信息可以看《FLask Web 開發》。
3
本次實驗未涉及藍本(Blueprint),對于這個概念還不是很理解,需要多啃書。
4
本實驗基于Python2.7,感覺Python的版本割裂實際上遠比看起來要大,而且并沒有一個版本完全優于另一個版本。比較頭疼的是2.x的編碼問題和3.x的絕對導入問題,仍待加深理解。
5
使用 virtualenv 和 requirements 可以把環境問題降到最小,誰用誰知道。
- virtulenv支持2.x和3.x,使用
virtualenv ./venv
創建虛擬環境,而3.x自帶了一個模塊,可以使用python3 -m venv ./venv
創建虛擬環境 - 使用
pip freeze > requirements.txt
導出依賴,使用pip install -r requirements.txt
導入依賴。
6
Python的導入問題需要進一步思考。
7
flask項目配置可以參考這篇。
8
業務邏輯和表現邏輯的分離非常贊。Jinja2模板還需要多寫一些代碼來熟悉,同時 flask-bootstrap 所引入的各種特性也需要慢慢了解。
9
關于面向對象的思想,一直以來使用較少,因此了解也不多,但在大型項目中是非常必要的。在這個實驗當中較多的體現在表單和數據庫模型對象上。以模型為例,既有各列的定義,也有繼承的查詢方法,同時自己也可以自行添加一些需要的方法。
10
flask的全局變量是一個很好的設計,很多特性還需要多讀文檔來了解。
0.1版本的源碼稍微看了一下,非常簡潔高效。
想到再更。