詳解 Flask 框架:從pip install flask到web應用整體架構

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-tw/n/155291.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-17 02:39
下一篇 2024-11-17 02:39

相關推薦

  • Ojlat:一款快速開發Web應用程序的框架

    Ojlat是一款用於快速開發Web應用程序的框架。它的主要特點是高效、易用、可擴展且功能齊全。通過Ojlat,開發人員可以輕鬆地構建出高質量的Web應用程序。本文將從多個方面對Oj…

    編程 2025-04-29
  • Zlios——一個多功能的開發框架

    你是否在開發過程中常常遇到同樣的問題,需要不斷去尋找解決方案?你是否想要一個多功能、易於使用的開發框架來解決這些問題?那麼,Zlios就是你需要的框架。 一、簡介 Zlios是一個…

    編程 2025-04-29
  • agavi開發框架

    Agavi是一個基於MVC模式的Web應用程序開發框架,以REST和面向資源的設計為核心思想。本文章將從Agavi的概念、優點、使用方法和實例等方面進行詳細介紹。 一、概念 Aga…

    編程 2025-04-29
  • 做Python的Flask開發,必須安裝PyCharm

    PyCharm是一款專業的Python集成開發環境(IDE),適用於Flask、Django等Web開發框架,提供了強大的代碼編輯、調試和版本控制等功能,大大提高了開發效率和代碼質…

    編程 2025-04-29
  • Python unittest框架用法介紹

    Python unittest框架是Python自帶的一種測試框架,可以用來編寫並運行測試用例。在本文中,我們將從以下幾個方面詳細介紹Python unittest框架的使用方法和…

    編程 2025-04-29
  • com.alipay.sofa.bolt框架

    com.alipay.sofa.bolt框架是一款高性能、輕量級、可擴展的RPC框架。其廣泛被應用於阿里集團內部服務以及阿里雲上的服務。該框架通過NIO支持高並發,同時還內置了多種…

    編程 2025-04-29
  • Django框架:從簡介到項目實戰

    本文將從Django的介紹,以及如何搭建Django環境開始,逐步深入到Django模型、視圖、模板、表單,最後通過一個小型項目實戰,進行綜合性的應用,讓讀者獲得更深入的學習。 一…

    編程 2025-04-28
  • pythoncs架構網盤client用法介紹

    PythonCS是一種使用Python編寫的分散式計算中間件。它具有分散式存儲、負載均衡、任務分發等功能。pythoncs架構網盤client是PythonCS框架下的一個程序,主…

    編程 2025-04-28
  • LuaEP:一款強大的Lua開發框架

    LuaEP是一個集成了可以快速開發web應用程序所需的組件的Lua開發框架。它以Lua語言為基礎,提供了許多常用介面和庫,使得開發者不需要從頭開始編寫web應用程序,而是專註於業務…

    編程 2025-04-28
  • Java持久層框架的複合主鍵實現

    用Java持久層框架來操作資料庫時,複合主鍵是常見的需求。這篇文章將詳細闡述javax.persistence複合主鍵的實現方式,並提供完整的示例代碼。 一、複合主鍵的定義 複合主…

    編程 2025-04-27

發表回復

登錄後才能評論