前言:
Python 面向?qū)ο蟮母呒?jí)編程語(yǔ)言,以其語(yǔ)法簡(jiǎn)單、免費(fèi)開(kāi)源、免編譯擴(kuò)展性高,同時(shí)也可以嵌入到C/C++程序和豐富的第三方庫(kù),Python運(yùn)用到大數(shù)據(jù)分析、人工智能、web后端等應(yīng)用場(chǎng)景上。
Python 目前主要流行的web框架:flask、Django、Tornado
那么框架與庫(kù)的區(qū)別?
框架(framework)跟庫(kù)的功能類似,但是框架在某一領(lǐng)域上功能更加全面。使用框架,會(huì)減少開(kāi)發(fā)者重復(fù)造輪子,直接調(diào)用其類或者函數(shù)就可以實(shí)現(xiàn)需求的功能。
那么,我們本期來(lái)學(xué)習(xí)Python提供的 web 框架之一-flask框架相關(guān)方法的學(xué)習(xí),Let's go~
1. flask 框架概述
flask 框架是一款基于 WSGI 的輕量級(jí)的web框架。flask 猶如耳熟能詳?shù)?ldquo;麻雀雖小,五臟俱全”,因此flask具有簡(jiǎn)單可拓展的特點(diǎn)。
1.1flask 框架優(yōu)勢(shì)
- 基于WSGI應(yīng)用程序,必須使用顯式實(shí)例化
- 使用Werkzeug路由系統(tǒng)進(jìn)行自動(dòng)排序路由
- 使用Jinja2模板引擎,快速方便使用模板
- 使用線程局部變量,實(shí)現(xiàn)快速訪問(wèn)weby應(yīng)用程序
- 支持異步等待和ASCI(async-first)
- 銜接單元測(cè)試,開(kāi)發(fā)人員快速進(jìn)行測(cè)試檢查
- 自帶開(kāi)發(fā)服務(wù)器,無(wú)需借助其他第三方網(wǎng)絡(luò)服務(wù)
1.2flask 框架獲取
使用pip進(jìn)行下載flask
pip install flask
flask 包下載之后,會(huì)自動(dòng)下載依賴庫(kù)
- Werkzeug 庫(kù):實(shí)現(xiàn)WSGI,前端與服務(wù)端的Python接口
- Jinjia 庫(kù):模板語(yǔ)言,顯示web頁(yè)面
- MarkupSafe 庫(kù):附帶Jinjia,用于轉(zhuǎn)義渲染模板不受信任的輸入
- itsDangerous:保護(hù)flask會(huì)話的cookie
- Click庫(kù):用于編寫(xiě)命令行框架
flask 可選的依賴庫(kù),按實(shí)際需要進(jìn)行下
- Blinker 庫(kù):提供對(duì)Singals的支持
- Python-dotenv 庫(kù):運(yùn)行命令時(shí)啟動(dòng)dotenv的環(huán)境變量來(lái)支持flask
- Watchdog 為flask服務(wù)器提供快速的加載器
1.3flask 框架使用
在代碼中,使用from...import 導(dǎo)入flask包
from flask import flask
長(zhǎng)按 Ctrl,我們可以查看Flask源代碼介紹
2. flask demo步驟
在flask web 框架中,我們來(lái)看看要搭建一個(gè)DEMO的網(wǎng)站需要做哪些步驟:
初始化:導(dǎo)入Flask庫(kù),定義Flask實(shí)例化對(duì)象
- Flask實(shí)例化時(shí),需要傳入__name__:目的是接收包或者模塊的名字作為參數(shù)
- 讓flask.helpers.get_root_path以便獲得靜態(tài)文件和模板文件的目錄
from flask import Flask APP = Flask(__name__)
定義一個(gè)應(yīng)用方法,并且route裝飾器裝飾
- 調(diào)用route()方法裝飾創(chuàng)建的應(yīng)用方法:目的是告訴flask怎么訪問(wèn)該函數(shù)
@APP.route("/") def hello(): return ("<h1>welcome juejin</h1>")
在main中,flask實(shí)例化對(duì)象調(diào)用run()方法,進(jìn)行運(yùn)行
- 如果在調(diào)試階段,我們需要設(shè)置debug=True
if __name__ == "__main__": APP.run(debug=True)
后臺(tái)運(yùn)行日志鏈接
我們?cè)L問(wèn)日志中生成的鏈,可以在網(wǎng)頁(yè)上看到解析的文字
3. flask 基礎(chǔ)功能
flask 上述實(shí)現(xiàn)的簡(jiǎn)易web程序,主要使用到啦flask模塊路由功能
3.1路由功能
route()是裝飾器,將URL和函數(shù)綁定
- rule:綁定訪問(wèn)該函數(shù)的url規(guī)則
- option:要轉(zhuǎn)發(fā)給Rule對(duì)象的參數(shù)列表
@app.route(url,optiion)
- run()是服務(wù)器上運(yùn)行應(yīng)用程序
- host:監(jiān)聽(tīng)的主機(jī)名
- port:主機(jī)端口號(hào)
- debug:提供調(diào)試信息
- options:要轉(zhuǎn)發(fā)給底層Werkzeug服務(wù)器
3.2模版提供
flask 框架是基于Jinja2模板引擎實(shí)現(xiàn)的
- 在項(xiàng)目中創(chuàng)建一個(gè)子目錄templates,然后在其目錄下創(chuàng)建demo.html
- 在flask文件中,應(yīng)用方法中需要調(diào)用
render_template('demo.html', name=name)
4、總結(jié)
本期,我們對(duì)flask 微web框架優(yōu)勢(shì)特點(diǎn)、demo web應(yīng)用程序程序步驟以及對(duì)flask模塊中路由和模版兩個(gè)功能進(jìn)行基本了解。
到此這篇關(guān)于淺談Python flask框架的文章就介紹到這了,更多相關(guān)Python flask框架內(nèi)容請(qǐng)搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!
原文鏈接:https://juejin.cn/post/7025997161649143822