flask入門教程

SilenceHL發表於2021-05-15

宣告:以下內容均為我個人的理解,如果發現錯誤或者疑問可以聯絡我共同探討

簡介

Flask是由Armin ronacher於2010年用Python語言基於 Werkzeug 工具箱編寫的輕量級Web開發框架。

特點

Flask只提供核心功能,其他幾乎所有的功能都需要用到擴充,比如可以通過Flask-SQLAlchemy擴充對資料庫進行操作等等。

核心

WerkzeugJinja2組成,Werkzeug是一個全面的WSGI Web應用程式庫,Jinja是一種現代且設計友好的Python模板語言。

Flask常用擴充套件

相關文件

  1. 中文文件
  2. 英文文件

Flask初體驗

安裝並使用虛擬環境

virtualenv 建立和管理虛擬環境

# 安裝
pip install virtualenv
# 建立
virtualenv flask_env
# 使用
source flask_env/bin/activate

Pipenv 建立和管理虛擬環境

# 安裝
pip install pipenv
# 建立
pipenv install
# 使用
pipenv shell

安裝指定版本flask框架

sudo pip install flask==1.0.2

建立一個檔案,並帶入編寫第一個Flask程式

touch helloflask.py
vim helloflask.py

在檔案中寫入以下程式碼

# 匯入Flask類
from flask import Flask

# 傳遞__name__引數,建立一個叫app的Flask例項,該例項將會成為我們的 WSGI 應用。
app = Flask(__name__)

# 通過route裝飾器來告訴Flask觸發函式的URL 
@app.route('/')
# index檢視函式,在訪問根路徑時會呼叫該函式通過其返回值得到結果
def index():
    return 'Hello Flask'

if __name__ == '__main__':
      # 通過run方法啟動web伺服器
    app.run()

退出編輯模式,執行該程式

python helloflask.py

可以看到以下結果

這樣就啟動了一個非常簡單的內建的伺服器。這個伺服器用於測試應該是足夠了,但是 用於生產可能是不夠的。現在在瀏覽器中開啟 127.0.0.1:5000/ ,應該可以看到 Hello Flask! 字樣。

相關配置引數

初始化引數

建立Flask專案的第一步就是例項化Flask物件,以下是例項化物件需要的引數詳解

  • import_name:Flask程式所在的包(模組),傳 __name__ 就可以,

  • static_url_path:靜態檔案訪問路徑,可以不傳,預設為:/ + static_folder

  • static_folder:靜態檔案儲存的資料夾,可以不傳,預設為 static

  • static_host:使用遠端主機儲存靜態檔案的地址,預設為None。當host_matching為True時,可以通過static_folder配置靜態檔案儲存的資料夾

  • host_matching:設定url_map.host_matching屬性,預設為False

  • subdomain_matching:匹配路由時,請考慮與以下項相關的子域:data:`SERVER_NAME’。預設為False。

  • template_folder:模板檔案儲存的資料夾,可以不傳,預設為 templates

  • instance_path:預設情況下,應用程式的備用例項路徑假定包或模組旁邊的資料夾“instance”為例項路徑。

  • instance_relative_config:如果將用於載入配置的相對檔名設定為“True”,則假定該檔名相對於例項路徑而不是應用程式根。

  • root_path:預設情況下,Flask將自動計算應用程式根路徑。在某些情況下,這無法實現(例如,如果包是Python 3名稱空間包),需要手動定義。

程式載入配置

在Flask程式執行前,我們可以給Flask設定相關配置,例如ENV(應用程式在什麼環境中執行),DEBUG(是否啟用除錯模式)TESTING(啟用測試模式)等配置,常見的有兩種方式來實現.

  • 從配置檔案中載入:app.config.from_pyfile()

    建立一個配置檔案

    touch config.ini
    vim config.ini 

    寫入配置資訊

    DEBUG = True

    選擇從配置檔案載入

    # 建立 Flask 類物件,指向程式所在的包的名稱
    app = Flask(__name__)
    
    # 從配置檔案中載入配置
    app.config.from_pyfile('config.ini')
  • 從配置物件中載入:app.config.from_object()

    建立一個配置類,然後將類名傳入即可

    # 配置類
    class ConfigObject(object):
        DEBUG = True
    
    # 建立 Flask 類物件,指向程式所在的包的名稱
    app = Flask(__name__)
    
    # 從配置物件中載入配置
    app.config.from_object(Config)

程式執行配置

這個demo中Flask專案程式啟動的入口是app.run()。常見的配置選項有host, port,debug,分別是設定執行主機的ip地址,埠號,是否開啟除錯模式,當配置檔案與這裡都有debug時,最終會以這裡的debug為準。

app.run(host="127.0.0.1", port=8000)

路由

在Web開發中,路由是一種將URL轉發到對應檢視的程式。

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章