Python Flask 是一款基於 Werkzeug WSGI 工具箱和 Jinja2 模板引擎的微型 Web 框架。與 Django 相比,Flask 是更加輕量級的框架,但卻可以應付大部分 Web 應用的需求。本篇文章希望通過對 pip install flask 這個命令的解釋,闡述 Flask 的優勢以及其在 web 應用整體架構中的應用。
一、安裝和配置Flask環境
1、安裝pip:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
2、通過 pip 安裝 Flask:
pip install flask
3、通過以下代碼測試 Flask 是否安裝成功:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
if __name__ == '__main__':
app.run()
如果不出意外,瀏覽器訪問 http://127.0.0.1:5000/ 就會看到 “Hello, World!”。
二、Flask 框架的特性
1、簡潔易用
Flask 框架設計之初就考慮到了易用性,其代碼量很小,但是功能卻非常強大。在 Flask 中,一些繁瑣的操作都被封裝在了簡單易用的 API 中,只需要調用即可完成相應的操作。
2、輕量級
Flask 框架代碼量少,沒有其它框架複雜,入門非常容易。同時 Flask 還是一款輕量級的框架,不會引入過多的庫和依賴,降低了網站維護和開發的難度。
3、靈活可擴展
通過 Flask Blueprint 和 Flask Extension,非常方便的為 Flask 添加新的功能。
4、支持 RESTful API 設計
RESTful 接口是一種流行的 Web 接口設計規範,對於前後端分離開發有着特別重要的意義。Flask 框架天生支持 RESTful 訪問方式,極易擴展到這一協議。
三、Flask 的設計思想
1、WSGI/Jinja2
Flask 在 WSGI 服務器頂層和 Python 應用程序之間提供了一個中間層,也就是所謂的請求上下文(request context)。WSGI 是 Python Web 開發的標準,而 Jinja2 是 Flask 框架專用的模板引擎,也是 Python 中應用廣泛的模板引擎之一。
2、視圖函數
在 Flask 中,每個路由都通過函數來處理,這個處理函數就被稱為視圖函數。視圖函數就是一個 Python 函數,當用戶請求瀏覽器上的某個 URL 時,就會將代碼中該視圖函數與 URL 對應起來,並返回視圖函數的執行結果給用戶。
3、路由系統
在 Flask 中,路由就是 URL 和函數之間的映射關係,通過路由,用戶可以直接訪問某個 URL 與之對應的視圖函數。
四、Flask應用的整體架構
1、工程目錄結構
+--app
| +--models
| +--static
| | +--css
| | +--img
| | +--js
| +--templates
| | +--includes
| | | +--\_formhelpers.html
| | | +--\_messages.html
| | +--layouts
| | | +--base.html
| | +--admin
| | | +--login.html
| | +--public
| | | +--home.html
| +--views
| | +--admin.py
| | +--common.py
| | +--public.py
+--requirements.txt
+--config.py
+--run.py
2、建立了一個 Flask 框架應用,首先需要定義應用的目錄結構。一般地,我們假定要建立一個博客應用。
3、這個應用的目錄結構是從一個核心源文件 flaskblog.py 開始擴展而來,主結構目錄的命令是博客的名字,通常是分塊的。
4、models 目錄是用來放置應用的數據模型的。比如一篇文章的數據模型,一個用戶的數據模型等等,對應上面工程目錄的第一個模塊。一般使用 SQLAlchemy 或者 MongoEngine 等 Python 庫來調試模型。
5、views 目錄是用來放置應用的視圖函數。Flask 通過 URL 與圖圖函數之間進行映射關係的,每個 URL 請求都會映射到一個用 Flask 的視圖函數處理的響應。
6、templates 目錄主要用來存放應用的模板文件,也就是 HTML 文件,通過 render_template 函數來渲染對應模板。
7、static 目錄通常用來存放應用使用到的靜態文件,比如 CSS、JS 和圖片等。
8、run.py 文件是程序的入口,我們通過它來啟動應用。
五、Conclusion
Flask 可以說是 Python Web 開發的還都框架之一,蛇皮的代碼風格、輕量級的設計、易於擴展等特點讓 Flask 體驗頗佳。相比 Django 等大型框架,Flask 的運行速度也更快,非常適合快速開發一些小型 Web 應用。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/155291.html