Flask - 框架簡介和第一個Flask應用程序

一、前言

  菜雞開始學習Flask框架了,參考:http://www.imooc.com/wiki/flasklesson/flaskintro.html

  Python比較主流的框架有:Flask,Django,FastApi,之前有簡單瞭解過Django,感覺太重了沒有深入學下去,現在準備瞭解下Flask框架。

  什麼是web開發框架?Web 開發框架是用於進行 Web 開發的一套軟件架構,Web 框架爲 Web 應用程序提供了基礎的功能。開發人員在 Web 框架的基礎上實現自己的業務邏輯,基於 Web 框架開發應用,開發人員只需要專注應用的業務邏輯,非業務邏輯的基礎功能則由框架提供,從而提升開發效率。

二、Flask框架簡介

1、Flask 簡介

Flask 是一個輕量級的 Web 框架,使用 Python 語言編寫,較其他同類型框架更爲靈活、輕便且容易上手,小型團隊在短時間內就可以完成功能豐富的中小型網站或 Web 服務的實現。

Flask 具有很強的定製性,用戶可以根據自己的需求來添加相應的功能,在保持核心功能簡單的同時實現功能的豐富與擴展,其強大的插件庫可以讓用戶實現個性化的網站定製,開發出功能強大的網站。

2、 Flask 的特點

2.1 微框架

Flask 是一個 Python 實現的 Web 開發微框架,但是這個“微”並不代表着 Flask 功能比較簡陋、有所欠缺。微框架中的 “微” 意味着:

  • Flask 旨在保持核心簡單而易於擴展;
  • Flask 不會替用戶做出太多決策,比如使用何種數據庫;
  • Flask 的選項(比如使用何種模板引擎) 通常有多個,用戶很容易替換。

默認情況下,Flask 不包含數據庫抽象層、模板引擎、身份認證或其它任何已有多種庫可以勝任的功能,如下圖所示。然而,Flask 支持用擴展來給應用添加這些功能,應用程序可以很方便的集成這些擴展。衆多的擴展提供了數據庫集成、表單驗證、上傳處理、各種各樣的開放認證技術等功能。

2.2 約定優於配置

設計不好的框架通常需要多個配置文件,每一個都有許多設置選項,程序員需要記憶大量的參數配置。

但是 Flask 遵循約定優於配置(Convention Over Configuration),也稱作按約定編程是一種軟件設計範式。目的在於減少軟件開發人員所需要做出的決定的數量,從而將開發變得簡單,而又不失去其中的靈活性,開發人員僅僅需要規定應用中不符合約定的部分。

Flask 存在有衆多的配置選項,但是在初始狀況下,它們都有一個常用的默認值,並會遵循一些慣例。 例如:按照慣例,模板和靜態文件分別存儲在應用 Python 源代碼樹下的子目錄 templates 和 static 裏。雖然這個配置可以修改,但通常不必這麼做,尤其是在剛開始學習的時候。

3、Flask 與 Django 的比較

3.1 兩個框架的區別

其實兩者最主要區別在於:Django 功能大而全,Flask 只包含基本的功能。

Django 採用一站式解決的思路,Django 集成有模板、表單、路由、認證、基本的數據庫管理等內建功能,開發者不用在選擇應用的基礎設施上花費大量時間。

Django 就像是一個裝潢好的房子,它提供了各種傢俱,直接入住即可。

Flask 相對於 Django 而言是輕量級的 Web 框架。和 Django 不同,Flask 只提供了最核心的功能,輕巧、簡潔,通過定製第三方擴展來實現具體功能。

默認情況下,不包含數據庫抽象、用戶認證、表單驗證、發送郵件等其它 Web 框架經常包含的功能。Flask 依賴用各種靈活的擴展(比如郵件 Flask Mail,用戶認證 Flask Login,數據庫 Flask SQLAlchemy)來給Web應用添加額外功能。

Flask 就像是一個沒有裝潢的房子,用戶需要自己選擇各種傢俱纔可以入住。

3.2 新手入門推薦

Flask 是一個輕量級的 Web 框架,只提供核心服務,較其他同類型框架更爲輕便且容易上手,適用於小型團隊在短時間內就可以完成功能豐富的中小型網站。與之相比,Django 是一個重量級的 Web 框架,內置許多常用的擴展,這些功能是由官方和社區共同維護的,其健壯性高,有利於保障項目質量。

推薦新手學習 Flask 框架,可以先從 Flask 開始,後使用 Django 重構。因爲如果直接上 Django,作爲新手,面對 Django 內置的各種繁雜功能產生很多疑惑。

三、第一個Flask應用程序

1、安裝 flask

Flask 是一個 Web 框架,使用它首先需要安裝:pip3 install flask

安裝完畢後,在 Python 的交互模式下,嘗試導入 Flask 模塊:import flask

如何查詢本地flask版本?

如何升級本地的flask版本?

百度的命令是:easy_install -U Flask

不過我沒升級成功,暫時看不懂原因,也沒百度到。

2、一個最小的 Flask 應用

代碼如下:

from flask import Flask

# 實例化創建一個 Flask 應用,第一個參數是 Flask 應用的名稱。__name__ 是一個標識 Python 模塊的名字的變量
app = Flask(__name__)

'''定義函數 hello_world,它返回一段 html 文本。
app.route(’/’) 返回一個裝飾器,裝飾器來爲函數 hello_world 綁定對應的 URL,
當用戶在瀏覽器訪問這個 URL 的時候,就會觸發這個函數,獲取返回值。'''
@app.route('/')
def hello_word():
    return '<b>Hello Word</b>'

# 如果當前模塊是主模塊,則變量 __name__ 爲 '__main__,此時調用 run() 方法啓動 Flask 應用
if __name__ == '__main__':
    app.run()

 運行該程序,在瀏覽器中輸入 localhost:5000 或者 127.0.0.1:5000 ,瀏覽器顯示如下:

 在控制檯中,Flask 應用輸出如下:

 這樣,我們就已經搭建好了一個最簡單的 Flask 應用。

3、 修改監聽地址和端口

上面說到要在瀏覽器中輸入 localhost:5000 才能看到運行效果。其中 localhost 代表本地 IP 地址,你也可以把 localhost 改成 127.0.0.1,效果和 localhost 是一樣的。那麼 5000 代表什麼呢?

其實 5000 是一個端口號,你可以把端口號理解爲是門牌號。我們的電腦會爲每一個應用程序劃分運行區間,每一個運行區間的標識就是端口號,我們可以通過端口號來訪問對應的應用程序,這和你在酒店根據門牌號找到房間是一個道理。

默認情況下,Flask 應用程序監聽地址 127.0.0.1 和端口 5000。如果你不想讓 Flask 程序運行在 5000 端口,也可以通過參數設置可以修改默認的監聽地址和端口,比如我們想讓 Flask 程序運行在一個比較吉利的端口 8888 上面,可以這樣修改代碼:

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return '<b>Hello World</b>'

if __name__ == '__main__':
    app.run(host = '0.0.0.0', port = 8888)

設定 app.run 的函數參數 host 爲 ‘0.0.0.0’,表示監聽每一個可用的網絡接口;設定 app.run 的函數參數 port 爲 8888,表示監聽端口 8888。

在瀏覽器輸入127.0.0.1:8889 或者 localhost:8889,瀏覽器顯示如下

 4、小結

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章