日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

python flask框架是什么_Flask框架是什么?带你安装运行第一个Flask程序

發(fā)布時間:2023/12/4 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python flask框架是什么_Flask框架是什么?带你安装运行第一个Flask程序 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1 了解框架

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

1.1 一切從客戶端發(fā)起請求開始。

所有Flask程序都必須創(chuàng)建一個程序?qū)嵗?/p>

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

此時,Web服務(wù)器使用一種名為WEB服務(wù)器網(wǎng)關(guān)接口的WSGI(Web Server Gateway Interface)協(xié)議,把來自客戶端的請求都交給Flask程序?qū)嵗?/p>

Flask使用Werkzeug來做路由分發(fā)(URL請求和視圖函數(shù)之間的對應(yīng)關(guān)系)。根據(jù)每個URL請求,找到具體的視圖函數(shù)。

在Flask程序中,路由一般是通過程序?qū)嵗难b飾器實現(xiàn)。通過調(diào)用視圖函數(shù),獲取到數(shù)據(jù)后,把數(shù)據(jù)傳入HTML模板文件中,模板引擎負責(zé)渲染HTTP響應(yīng)數(shù)據(jù),然后由Flask返回響應(yīng)數(shù)據(jù)給瀏覽器,最后瀏覽器顯示返回的結(jié)果。

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

根據(jù)服務(wù)器端的工作,將其分為兩部分:

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

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

服務(wù)器與Python業(yè)務(wù)程序的配合使用WSGI協(xié)議。

1.3 框架的輕重

重量級的框架:為方便業(yè)務(wù)程序的開發(fā),提供了豐富的工具、組件,如Django

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

2 認識Flask

2.1 簡介

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

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

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

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

2.2 與Django對比

django提供了:

django-admin快速創(chuàng)建項目工程目錄

manage.py 管理項目工程

orm模型(數(shù)據(jù)庫抽象層)

admin后臺管理站點

緩存機制

文件存儲系統(tǒng)

用戶認證系統(tǒng)

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

2.3 Flask擴展包:

Flask-SQLalchemy:操作數(shù)據(jù)庫;

Flask-migrate:管理遷移數(shù)據(jù)庫;

Flask-Mail:郵件;

Flask-WTF:表單;

Flask-script:插入腳本;

Flask-Login:認證用戶狀態(tài);

Flask-RESTful:開發(fā)REST API的工具;

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

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

3 安裝使用Flask

1. 安裝flaskpip3 install flask

2. 第一個Flask程序

Flask程序運行過程:

所有Flask程序必須有一個程序?qū)嵗?/p>

Flask調(diào)用視圖函數(shù)后,會將視圖函數(shù)的返回值作為響應(yīng)的內(nèi)容,返回給客戶端。一般情況下,響應(yīng)內(nèi)容主要是字符串和狀態(tài)碼。

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

程序?qū)嵗褂肳erkzeug來做路由分發(fā)(URL請求和視圖函數(shù)之間的對應(yīng)關(guān)系)。根據(jù)每個URL請求,找到具體的視圖函數(shù)。 在Flask程序中,路由的實現(xiàn)一般是通過程序?qū)嵗膔oute裝飾器實現(xiàn)。route裝飾器內(nèi)部會調(diào)用add_url_route()方法實現(xiàn)路由注冊。

調(diào)用視圖函數(shù),獲取響應(yīng)數(shù)據(jù)后,把數(shù)據(jù)傳入HTML模板文件中,模板引擎負責(zé)渲染響應(yīng)數(shù)據(jù),然后由Flask返回響應(yīng)數(shù)據(jù)給瀏覽器,最后瀏覽器處理返回的結(jié)果顯示給客戶端。

創(chuàng)建一個flask項目,然后創(chuàng)建app.py文件。# 導(dǎo)入Flask類

from flask import Flask

#Flask類接收一個參數(shù)__name__

app = Flask(__name__)

# 裝飾器的作用是將路由映射到視圖函數(shù)index

@app.route('/')

def index():

return 'Hello World'

# Flask應(yīng)用程序?qū)嵗膔un方法啟動WEB服務(wù)器

if __name__ == '__main__':

app.run()

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

3. Flask創(chuàng)建app對象

3.1 初始化參數(shù)# 創(chuàng)建flask的應(yīng)用對象;

# __name__ flask以這個模塊所在的目錄為總目錄,默認這個目錄中static為靜態(tài)目錄,templates為模板目錄

app = Flask(__name__,

static_url_path='/static', # 訪問靜態(tài)資源的url前綴,默認為static

static_folder='static', # 靜態(tài)文件的目錄,默認為static

template_folder='templates', # 模板文件的目錄,默認為templates

)

3.2 配置參數(shù)# 配置參數(shù)的使用方式(開啟調(diào)試模式)

# 1.使用配置文件

# app.config.from_pyfile("config.cfg") # 在項目下創(chuàng)建一個config.cfg文件,然后在里面寫DEBUG=True

# 2.使用對象配置參數(shù)

# class Config(object):

# DEBUG = True

# app.config.from_object(Config)

# 3.直接操作config的字典對象

# app.config["DEBUG"] = True

3.3 在視圖讀取配置參數(shù)# 2.使用對象配置參數(shù)

# class Config(object):

# DEBUG = True

# NAME = "test"

# app.config.from_object(Config)

from flask import Flask, current_app

# 讀取配置參數(shù)

# 1.直接從全局對象app的config字典中取值

# print(app.config.get("NAME"))

# 2. 通過current_app獲取參數(shù)

# print(current_app.config.get("NAME"))

3.4 app.run的參數(shù)# 啟動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。設(shè)置0.0.0.0時都可以訪問;可以在這里設(shè)置調(diào)試模式

總結(jié)

以上是生活随笔為你收集整理的python flask框架是什么_Flask框架是什么?带你安装运行第一个Flask程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。