1、直接處理 HTTP 請(qǐng)求和響應(yīng)
Web 服務(wù)器和瀏覽器通過 HTTP 協(xié)議進(jìn)行通信——服務(wù)器等待來自瀏覽器的 HTTP 請(qǐng)求,然后在 HTTP 響應(yīng)中返回信息。Web 框架允許您編寫簡(jiǎn)化的語法,這些語法將生成服務(wù)器端代碼來處理這些請(qǐng)求和響應(yīng)。這意味著您將擁有更輕松的工作,與更簡(jiǎn)單、更高級(jí)別的代碼進(jìn)行交互,而不是與較低級(jí)別的網(wǎng)絡(luò)原語進(jìn)行交互。
2、將請(qǐng)求路由到相應(yīng)的處理程序
大多數(shù)網(wǎng)站將提供許多不同的資源,可通過不同的 URL 訪問。在一個(gè)函數(shù)中處理所有這些很難維護(hù),因此 Web 框架提供了簡(jiǎn)單的機(jī)制來將 URL 模式映射到特定的處理程序函數(shù)。此方法在維護(hù)方面也有好處,因?yàn)槟梢愿挠糜诮桓短囟üδ艿?URL,而無需更改基礎(chǔ)代碼。
3、輕松訪問請(qǐng)求中的數(shù)據(jù)
可以通過多種方式在 HTTP 請(qǐng)求中對(duì)數(shù)據(jù)進(jìn)行編碼。從服務(wù)器獲取文件或數(shù)據(jù)的 HTTP 請(qǐng)求可能會(huì)對(duì) URL 參數(shù)或 URL 結(jié)構(gòu)中所需的數(shù)據(jù)進(jìn)行編碼。更新服務(wù)器上資源的 HTTP 請(qǐng)求將改為將更新信息作為“POST 數(shù)據(jù)”包含在請(qǐng)求正文中。HTTP 請(qǐng)求還可能包含有關(guān)客戶端 Cookie 中的當(dāng)前會(huì)話或用戶的信息。
Web 框架提供了適合編程語言的機(jī)制來訪問此信息。例如,Django 傳遞給每個(gè)視圖函數(shù)的對(duì)象包含用于訪問目標(biāo) URL 的方法和屬性、請(qǐng)求類型(例如 HTTP )或參數(shù)、cookie 和會(huì)話數(shù)據(jù)等。Django 還可以通過在 URL 映射器中定義“捕獲模式”來傳遞 URL 結(jié)構(gòu)中編碼的信息。
4、抽象化和簡(jiǎn)化數(shù)據(jù)庫訪問
網(wǎng)站使用數(shù)據(jù)庫來存儲(chǔ)要與用戶共享的信息以及有關(guān)用戶的信息。Web 框架通常提供一個(gè)數(shù)據(jù)庫層來抽象數(shù)據(jù)庫讀取、寫入、查詢和刪除操作。此抽象層稱為對(duì)象關(guān)系映射器 (ORM)。
使用 ORM 有兩個(gè)好處:
可以替換基礎(chǔ)數(shù)據(jù)庫,而不必更改使用它的代碼。這允許開發(fā)人員根據(jù)不同數(shù)據(jù)庫的使用情況對(duì)其進(jìn)行優(yōu)化。數(shù)據(jù)的基本驗(yàn)證可以在框架內(nèi)實(shí)現(xiàn)。這使得檢查數(shù)據(jù)是否存儲(chǔ)在正確類型的數(shù)據(jù)庫字段中、是否具有正確的格式(例如電子郵件地址)并且沒有任何惡意(黑客可以使用某些代碼模式來做壞事,例如刪除數(shù)據(jù)庫記錄)變得更加容易和更安全。5、渲染數(shù)據(jù)
Web框架通常提供模板系統(tǒng)。這些允許您指定輸出文檔的結(jié)構(gòu),對(duì)生成頁面時(shí)將添加的數(shù)據(jù)使用占位符。模板通常用于創(chuàng)建 HTML,但也可以創(chuàng)建其他類型的文檔。Web框架通常提供一種機(jī)制,可以輕松地從存儲(chǔ)的數(shù)據(jù)(包括JSON和XML)生成其他格式。
6、減少程序員工作量
Web框架使得在進(jìn)行Web應(yīng)用開發(fā)的時(shí)候,減少了工作量。Web框架主要用于動(dòng)態(tài)網(wǎng)絡(luò)開發(fā),動(dòng)態(tài)網(wǎng)絡(luò)主要是指現(xiàn)在的主要的頁面,可以實(shí)現(xiàn)數(shù)據(jù)的交互和業(yè)務(wù)功能的完善。使用Web框架進(jìn)行Web開發(fā)的時(shí)候,在進(jìn)行數(shù)據(jù)緩存、數(shù)據(jù)庫訪問、數(shù)據(jù)安全校驗(yàn)等方面,不需要自己再重新實(shí)現(xiàn),而是將業(yè)務(wù)邏輯相關(guān)的代碼寫入框架就可以。也就是說,通過對(duì)Web框架進(jìn)行主觀上的修改完善,就可以實(shí)現(xiàn)自己進(jìn)行Web開發(fā)的需求了。
延伸閱讀1:Web 框架
服務(wù)器端 Web 框架(又名“Web 應(yīng)用程序框架”)是使編寫、維護(hù)和擴(kuò)展 Web 應(yīng)用程序變得更加容易的軟件框架。它們提供了簡(jiǎn)化常見 Web 開發(fā)任務(wù)的工具和庫,包括將 URL 路由到適當(dāng)?shù)奶幚沓绦?、與數(shù)據(jù)庫交互、支持會(huì)話和用戶授權(quán)、格式化輸出(.HTML例如 JSON、XML)以及提高抵御 Web 攻擊的安全性。