1. 框架優(yōu)點(diǎn):
Flask屬于微框架(micro-framework)這一類別,微架構(gòu)通常是很小的不依賴外部庫(kù)的框架。
框架很輕量
更新時(shí)依賴小
專注于安全方面的bug
2. 依賴
Flask的依賴
Werkzeug:一個(gè)WSGI工具包(web服務(wù)網(wǎng)關(guān)接口(Python Web Server Gateway Interface,縮寫為WSGI)是為python語(yǔ)言定義的web服務(wù)器和web應(yīng)用程序或框架之間的一種簡(jiǎn)單而通用的接口,其他語(yǔ)言也有類似的接口)
jinja2:模板引擎
3. Django和Flask有什么區(qū)別
Flask
輕量級(jí)web框架斤讥,默認(rèn)依賴兩個(gè)外部庫(kù):jinja2和Werkzeug WSGI工具
適用于做小型網(wǎng)站以及web服務(wù)的API,開發(fā)大型網(wǎng)站無(wú)壓力湾趾,但架構(gòu)需要自己設(shè)計(jì)
與關(guān)系型數(shù)據(jù)庫(kù)的結(jié)合不弱于Django芭商,而與非關(guān)系型數(shù)據(jù)庫(kù)的結(jié)合遠(yuǎn)遠(yuǎn)優(yōu)于Django
Django
重量級(jí)web框架,功能齊全撑帖,提供一站式解決的思路蓉坎,能讓開發(fā)者不用在選擇上花費(fèi)大量時(shí)間。
自帶ORM(Object-Relational Mapping 對(duì)象關(guān)系映射)和模板引擎胡嘿,支持jinja等非官方模板引擎蛉艾。
自帶ORM使Django和關(guān)系型數(shù)據(jù)庫(kù)耦合度高,如果要使用非關(guān)系型數(shù)據(jù)庫(kù)衷敌,需要使用第三方庫(kù)
自帶數(shù)據(jù)庫(kù)管理app
成熟勿侯,穩(wěn)定,開發(fā)效率高缴罗,相對(duì)于Flask助琐,Django的整體封閉性比較好,適合做企業(yè)級(jí)網(wǎng)站的開發(fā)面氓。
python web框架的先驅(qū)兵钮,第三方庫(kù)豐富
4. Flask-WTF是什么,有什么特點(diǎn)
Flask-wtf是一個(gè)用于表單處理,校驗(yàn)并提供csrf驗(yàn)證的功能的擴(kuò)展庫(kù)
Flask-wtf能保證表單免受CSRF<跨站請(qǐng)求偽造>的攻擊
5. python中的數(shù)據(jù)庫(kù)連接有兩種方式
在腳本中用第三方庫(kù)正常連接舌界,用sql語(yǔ)句正常操作數(shù)據(jù)庫(kù)掘譬,如mysql關(guān)系型數(shù)據(jù)庫(kù)的pymsql庫(kù)。
用ORM來(lái)進(jìn)行數(shù)據(jù)庫(kù)連接呻拌,flask中典型的flask_sqlalchemy葱轩,以面向?qū)ο蟮姆绞竭M(jìn)行數(shù)據(jù)庫(kù)的連接與操作。
6. 什么是wsgi
WSGI(Web Server Gateway Interface,Web 服務(wù)器網(wǎng)關(guān)接口)是Python語(yǔ)言中所定義的Web服務(wù)器和Web應(yīng)用程序之間或框架之間的通用接口標(biāo)準(zhǔn)靴拱。
WSGI就是一座橋梁垃喊,橋梁的一端稱為服務(wù)端或網(wǎng)關(guān)端,另一端稱為應(yīng)用端或者框架端袜炕,WSGI的作用就是在協(xié)議之間進(jìn)行轉(zhuǎn)化本谜。WSGI將Web組件分成了三類:Web 服務(wù)器(WSGI Server)、Web中間件(WSGI Middleware)與Web應(yīng)用程序(WSGI Application)。
Web Server接收HTTP請(qǐng)求戴甩,封裝一系列環(huán)境變量,按照WSGI接口標(biāo)準(zhǔn)調(diào)用注冊(cè)的WSGI Application,最后將響應(yīng)返回給客戶端葬毫。
7. Flask框架依賴組件
Route(路由)
templates(模板)
Models(orm模型)
blueprint(藍(lán)圖)
Jinja2模板引擎
8. Flask藍(lán)圖的作用
將不同的功能模塊化
構(gòu)建大型應(yīng)用
優(yōu)化項(xiàng)目結(jié)構(gòu)
增強(qiáng)可讀性,易于維護(hù)(跟Django的view功能相似)
8. ORM的實(shí)現(xiàn)原理
一個(gè)持久化類和一個(gè)表對(duì)應(yīng),類的每個(gè)實(shí)例對(duì)應(yīng)表中的一條記錄昭殉,類的每個(gè)屬性對(duì)應(yīng)表的每個(gè)字段忙干。
提高了開發(fā)效率。由于ORM可以自動(dòng)對(duì)Entity對(duì)象與數(shù)據(jù)庫(kù)中的Table進(jìn)行字段與屬性的映射培遵,所以我們實(shí)際可能已經(jīng)不需要一個(gè)專用的浙芙、龐大的數(shù)據(jù)訪問(wèn)層。
ORM提供了對(duì)數(shù)據(jù)庫(kù)的映射籽腕,不用sql直接編碼嗡呼,能夠像操作對(duì)象一樣從數(shù)據(jù)庫(kù)獲取數(shù)據(jù)。