真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

關(guān)于Flask框架的詳細(xì)分析-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),衡南企業(yè)網(wǎng)站建設(shè),衡南品牌網(wǎng)站建設(shè),網(wǎng)站定制,衡南網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,衡南網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

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

1 了解框架

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

1.1 一切從客戶端發(fā)起請(qǐng)求開(kāi)始。

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

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

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

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

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

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

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

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

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

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

1.3 框架的輕重

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

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

2 認(rèn)識(shí)Flask

2.1 簡(jiǎn)介

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

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

可以說(shuō)Flask框架的核心就是Werkzeug和Jinja2。

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

2.2 與Django對(duì)比

django提供了:

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

manage.py 管理項(xiàng)目工程

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

admin后臺(tái)管理站點(diǎn)

緩存機(jī)制

文件存儲(chǔ)系統(tǒng)

用戶認(rèn)證系統(tǒng)

而這些,flask都沒(méi)有,都需要擴(kuò)展包來(lái)提供。

2.3 Flask擴(kuò)展包:

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

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

Flask-Mail:郵件;

Flask-WTF:表單;

Flask-script:插入腳本;

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

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

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

Flask-Moment:本地化日期和時(shí)間;

3 安裝使用Flask

1. 安裝flask

pip3 install flask

2. 第一個(gè)Flask程序

Flask程序運(yùn)行過(guò)程:

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

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

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

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

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

創(chuàng)建一個(gè)flask項(xiàng)目,然后創(chuàng)建app.py文件。

# 導(dǎo)入Flask類
from flask import Flask
#Flask類接收一個(gè)參數(shù)__name__
app = Flask(__name__)
# 裝飾器的作用是將路由映射到視圖函數(shù)index
@app.route('/')
def index():
    return 'Hello World'
# Flask應(yīng)用程序?qū)嵗膔un方法啟動(dòng)WEB服務(wù)器
if __name__ == '__main__':
    app.run()

啟動(dòng)項(xiàng)目,在瀏覽器訪問(wèn),此時(shí)頁(yè)面上就會(huì)有Hello World。

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

3.1 初始化參數(shù)

# 創(chuàng)建flask的應(yīng)用對(duì)象;
# __name__   flask以這個(gè)模塊所在的目錄為總目錄,默認(rèn)這個(gè)目錄中static為靜態(tài)目錄,templates為模板目錄
app = Flask(__name__,
            static_url_path='/static',      # 訪問(wèn)靜態(tài)資源的url前綴,默認(rèn)為static
            static_folder='static',         # 靜態(tài)文件的目錄,默認(rèn)為static
            template_folder='templates',    # 模板文件的目錄,默認(rèn)為templates
            )

3.2 配置參數(shù)

# 配置參數(shù)的使用方式(開(kāi)啟調(diào)試模式)
# 1.使用配置文件
# app.config.from_pyfile("config.cfg")    # 在項(xiàng)目下創(chuàng)建一個(gè)config.cfg文件,然后在里面寫(xiě)DEBUG=True
# 2.使用對(duì)象配置參數(shù)
# class Config(object):
#     DEBUG = True
# app.config.from_object(Config)
# 3.直接操作config的字典對(duì)象
# app.config["DEBUG"] = True

3.3 在視圖讀取配置參數(shù)

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

3.4 app.run的參數(shù)

# 啟動(dòng)Flask程序
app.run()   # 默認(rèn)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í)都可以訪問(wèn);可以在這里設(shè)置調(diào)試模式

以上是關(guān)于Flask框架的詳細(xì)分析的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道!


本文標(biāo)題:關(guān)于Flask框架的詳細(xì)分析-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)鏈接:http://weahome.cn/article/dcjcgd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部