亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

關于Flask框架的詳細分析

發布時間:2020-09-08 13:52:40 來源:億速云 閱讀:129 作者:小新 欄目:編程語言

這篇文章主要介紹關于Flask框架的詳細分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

1 了解框架

Flask作為Web框架,它的作用主要是為了開發Web應用程序。那么我們首先來了解下Web應用程序。Web應用程序 (World Wide Web)誕生最初的目的,是為了利用互聯網交流工作文檔。

1.1 一切從客戶端發起請求開始。

所有Flask程序都必須創建一個程序實例。

當客戶端想要獲取資源時,一般會通過瀏覽器發起HTTP請求。

此時,Web服務器使用一種名為WEB服務器網關接口的WSGI(Web Server Gateway Interface)協議,把來自客戶端的請求都交給Flask程序實例。

Flask使用Werkzeug來做路由分發(URL請求和視圖函數之間的對應關系)。根據每個URL請求,找到具體的視圖函數。

在Flask程序中,路由一般是通過程序實例的裝飾器實現。通過調用視圖函數,獲取到數據后,把數據傳入HTML模板文件中,模板引擎負責渲染HTTP響應數據,然后由Flask返回響應數據給瀏覽器,最后瀏覽器顯示返回的結果。

1.2 客戶端不一定是瀏覽器,也可以是PC軟件、手機APP、程序

根據服務器端的工作,將其分為兩部分:

(1)服務器:與客戶端進行tcp通信,接收、解析、打包、發送http格式數據。

(2)業務程序:根據解析后的請求數據執行邏輯處理,形成要返回的數據交給服務器。

服務器與Python業務程序的配合使用WSGI協議。

1.3 框架的輕重

重量級的框架:為方便業務程序的開發,提供了豐富的工具、組件,如Django

輕量級的框架:只提供Web框架的核心功能,自由、靈活、高度定制,如Flask、Tornado

2 認識Flask

2.1 簡介

Flask誕生于2010年,是Armin ronacher(人名)用Python語言基于Werkzeug工具箱編寫的輕量級Web開發框架。它主要面向需求簡單的小應用。

Flask本身相當于一個內核,其他幾乎所有的功能都要用到擴展(郵件擴展Flask-Mail,用戶認證Flask-Login),都需要用第三方的擴展來實現。比如可以用Flask-extension加入ORM、窗體驗證工具,文件上傳、身份驗證等。Flask沒有默認使用的數據庫,你可以選擇MySQL,也可以用NoSQL。其 WSGI 工具箱采用 Werkzeug(路由模塊),模板引擎則使用 Jinja2 。

可以說Flask框架的核心就是Werkzeug和Jinja2。

Python最出名的框架要數Django,此外還有Flask、Tornado等框架。雖然Flask不是最出名的框架,但是Flask應該算是最靈活的框架之一,這也是Flask受到廣大開發者喜愛的原因。

2.2 與Django對比

django提供了:

django-admin快速創建項目工程目錄

manage.py 管理項目工程

orm模型(數據庫抽象層)

admin后臺管理站點

緩存機制

文件存儲系統

用戶認證系統

而這些,flask都沒有,都需要擴展包來提供。

2.3 Flask擴展包:

Flask-SQLalchemy:操作數據庫;

Flask-migrate:管理遷移數據庫;

Flask-Mail:郵件;

Flask-WTF:表單;

Flask-script:插入腳本;

Flask-Login:認證用戶狀態;

Flask-RESTful:開發REST API的工具;

Flask-Bootstrap:集成前端Twitter Bootstrap框架;

Flask-Moment:本地化日期和時間;

3 安裝使用Flask

1. 安裝flask

pip3 install flask

2. 第一個Flask程序

Flask程序運行過程:

所有Flask程序必須有一個程序實例。

Flask調用視圖函數后,會將視圖函數的返回值作為響應的內容,返回給客戶端。一般情況下,響應內容主要是字符串和狀態碼。

當客戶端想要獲取資源時,一般會通過瀏覽器發起HTTP請求。此時,Web服務器使用WSGI(Web Server Gateway Interface)協議,把來自客戶端的所有請求都交給Flask程序實例。WSGI是為 Python 語言定義的Web服務器和Web應用程序之間的一種簡單而通用的接口,它封裝了接受HTTP請求、解析HTTP請求、發送HTTP,響應等等的這些底層的代碼和操作,使開發者可以高效的編寫Web應用。

程序實例使用Werkzeug來做路由分發(URL請求和視圖函數之間的對應關系)。根據每個URL請求,找到具體的視圖函數。 在Flask程序中,路由的實現一般是通過程序實例的route裝飾器實現。route裝飾器內部會調用add_url_route()方法實現路由注冊。

調用視圖函數,獲取響應數據后,把數據傳入HTML模板文件中,模板引擎負責渲染響應數據,然后由Flask返回響應數據給瀏覽器,最后瀏覽器處理返回的結果顯示給客戶端。

創建一個flask項目,然后創建app.py文件。

# 導入Flask類
from flask import Flask
#Flask類接收一個參數__name__
app = Flask(__name__)
# 裝飾器的作用是將路由映射到視圖函數index
@app.route('/')
def index():
    return 'Hello World'
# Flask應用程序實例的run方法啟動WEB服務器
if __name__ == '__main__':
    app.run()

啟動項目,在瀏覽器訪問,此時頁面上就會有Hello World。

3. Flask創建app對象

3.1 初始化參數

# 創建flask的應用對象;
# __name__   flask以這個模塊所在的目錄為總目錄,默認這個目錄中static為靜態目錄,templates為模板目錄
app = Flask(__name__,
            static_url_path='/static',      # 訪問靜態資源的url前綴,默認為static
            static_folder='static',         # 靜態文件的目錄,默認為static
            template_folder='templates',    # 模板文件的目錄,默認為templates
            )

3.2 配置參數

# 配置參數的使用方式(開啟調試模式)
# 1.使用配置文件
# app.config.from_pyfile("config.cfg")    # 在項目下創建一個config.cfg文件,然后在里面寫DEBUG=True
# 2.使用對象配置參數
# class Config(object):
#     DEBUG = True
# app.config.from_object(Config)
# 3.直接操作config的字典對象
# app.config["DEBUG"] = True

3.3 在視圖讀取配置參數

# 2.使用對象配置參數
# class Config(object):
#     DEBUG = True
#     NAME = "test"
# app.config.from_object(Config)
from flask import Flask, current_app
    # 讀取配置參數
    # 1.直接從全局對象app的config字典中取值
    # print(app.config.get("NAME"))
    # 2. 通過current_app獲取參數
    # print(current_app.config.get("NAME"))

3.4 app.run的參數

# 啟動Flask程序
app.run()   # 默認127.0.0.1
# app.run(host="192.168.1.1", port=5000)   # 使用電腦ip
# app.run(host="0.0.0.0", port=5000, debug=True)  # 配置host和port。設置0.0.0.0時都可以訪問;可以在這里設置調試模式

以上是關于Flask框架的詳細分析的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

郓城县| 桃江县| 屯昌县| 葫芦岛市| 顺昌县| 新泰市| 临汾市| 莒南县| 开原市| 秦皇岛市| 黔西| 大庆市| 南岸区| 娄烦县| 永定县| 遂平县| 安塞县| 宁城县| 佳木斯市| 绥阳县| 临泽县| 门头沟区| 安义县| 惠安县| 仁化县| 蚌埠市| 衡水市| 娄烦县| 噶尔县| 澄迈县| 涪陵区| 威海市| 武安市| 三都| 炎陵县| 颍上县| 丰原市| 文登市| 宣化县| 洛阳市| 江川县|