Django框架是什麼?
Django在新一代的Web框架中非常出色,為什么這么說呢?
為回答該問題,讓我們考慮一下不使用框架設(shè)計(jì)Python網(wǎng)頁(yè)應(yīng)用程序的情形.貫穿整本書,我們多次展示不使用框架實(shí)現(xiàn)網(wǎng)站基本功能的方法,讓讀者認(rèn)識(shí)到框架開發(fā)的方便,(不使用框架,更多情況是沒有合適的框架可用. 最重要的是,理解實(shí)現(xiàn)的來龍去脈會(huì)使你成為一個(gè)優(yōu)秀的web開發(fā)者)
使用Python開發(fā)Web,最簡(jiǎn)單,原始和直接的辦法是使用CGI標(biāo)準(zhǔn),在1998年這種方式很流行.現(xiàn)在從應(yīng)用角度解釋它是如何工作: 首先做一個(gè)Python腳本,輸出HTML代碼,然后保存成.cgi擴(kuò)展名的文件,通過瀏覽器訪問此文件,就是這樣.
如下示例,用Python CGI腳本顯示數(shù)據(jù)庫(kù)中最新出版的10本書:不用關(guān)心語(yǔ)法細(xì)節(jié),僅僅感覺一下基本實(shí)現(xiàn)的方法:
首先,用戶請(qǐng)求CGI,腳本代碼打印Content-Type行,后面跟著換行.再接下來是一些HTML的起始標(biāo)簽,然后連接數(shù)據(jù)庫(kù)并執(zhí)行一些查詢操作,獲取最新的十本書.在遍歷這些書的同時(shí),生成一個(gè)書名的HTML列表項(xiàng).最后,輸出HTML的結(jié)束標(biāo)簽并且關(guān)閉數(shù)據(jù)庫(kù)連接.
像這樣的一次性的動(dòng)態(tài)頁(yè)面,從頭寫起的方法并非一定不好.其中一點(diǎn):這些代碼簡(jiǎn)單易懂,就算是一個(gè)初起步的 開發(fā)者都能讀明白這16行的Python的代碼,而且這些代碼從頭到尾做了什么都能了解得一清二楚.不需要學(xué)習(xí)額外的背景知識(shí),沒有額外的代碼需要去了解. 同樣,也易于部署這16行代碼,只需要將它保存為一個(gè)latestbooks.cgi的文件,上傳到網(wǎng)絡(luò)服務(wù)器上,通過瀏覽器訪問即可.
盡管實(shí)現(xiàn)很簡(jiǎn)單,還是暴露了一些問題和不便的地方.問你自己這幾個(gè)問題:
(1)應(yīng)用中有多處需要連接數(shù)據(jù)庫(kù)會(huì)怎樣呢?每個(gè)獨(dú)立的CGI腳本,不應(yīng)該重復(fù)寫數(shù)據(jù)庫(kù)連接的代碼.比較實(shí)用的辦法是寫一個(gè)共享函數(shù),可被多個(gè)代碼調(diào)用.
(2)一個(gè)開發(fā)人員確實(shí)需要去關(guān)注如何輸出Content-Type以及完成所有操作后去關(guān)閉數(shù)據(jù)庫(kù)么?此類問題只會(huì)降低開發(fā)人員的工作效率,增加犯錯(cuò)誤的幾率. 那些初始化和釋放相關(guān)的工作應(yīng)該交給一些通用的框架來完成.
(3)如果這樣的代碼被重用到一個(gè)復(fù)合的環(huán)境中會(huì)發(fā)生什么?每個(gè)頁(yè)面都分別對(duì)應(yīng)獨(dú)立的數(shù)據(jù)庫(kù)和密碼嗎?
(4)如果一個(gè)Web設(shè)計(jì)師,完全沒有Python開發(fā)經(jīng)驗(yàn),但是又需要重新設(shè)計(jì)頁(yè)面的話,又將發(fā)生什么呢?一個(gè)字符寫錯(cuò)了,可能導(dǎo)致整個(gè)應(yīng)用崩潰. 理想的情況是,頁(yè)面顯示的邏輯與從數(shù)據(jù)庫(kù)中讀取書本記錄分隔開,這樣Web設(shè)計(jì)師的重新設(shè)計(jì)不會(huì)影響到之前的業(yè)務(wù)邏輯.
以上正是Web框架致力于解決的問題. Web框架為應(yīng)用程序提供了一套程序框架,這樣你可以專注于編寫清晰、易維護(hù)的代碼,而無(wú)需從頭做起.簡(jiǎn)單來說,這就是Django所能做的.
轉(zhuǎn)載于:https://www.cnblogs.com/apollo1616/articles/9893280.html
總結(jié)
以上是生活随笔為你收集整理的Django框架是什麼?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 迷你世界地形码怎么用?
- 下一篇: Luogu 4755 Beautiful