溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

django面試會(huì)問(wèn)哪些問(wèn)題

發(fā)布時(shí)間:2020-11-25 11:45:23 來(lái)源:億速云 閱讀:164 作者:小新 欄目:編程語(yǔ)言

這篇文章給大家分享的是有關(guān)django面試會(huì)問(wèn)哪些問(wèn)題的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧。

以下是Django面試中常見(jiàn)的一些問(wèn)題

對(duì)Django的認(rèn)識(shí)?

1.Django是走大而全的方向,它最出名的是其全自動(dòng)化的管理后臺(tái):只需要使用起ORM,做簡(jiǎn)單的對(duì)象定義,它就能自動(dòng)生成數(shù)據(jù)庫(kù)結(jié)構(gòu)、以及全功能的管理后臺(tái)。

2.Django內(nèi)置的ORM跟框架內(nèi)的其他模塊耦合程度高。應(yīng)用程序必須使用Django內(nèi)置的ORM,否則就不能享受到框架內(nèi)提供的種種基于其ORM的便利;理論上可以切換掉其ORM模塊,但這就相當(dāng)于要把裝修完畢的房子拆除重新裝修,倒不如一開(kāi)始就去毛胚房做全新的裝修。

3.Django的賣點(diǎn)是超高的開(kāi)發(fā)效率,其性能擴(kuò)展有限;采用Django的項(xiàng)目,在流量達(dá)到一定規(guī)模后,都需要對(duì)其進(jìn)行重構(gòu),才能滿足性能的要求。

4.Django適用的是中小型的網(wǎng)站,或者是作為大型網(wǎng)站快速實(shí)現(xiàn)產(chǎn)品雛形的工具。

5.Django模板的設(shè)計(jì)哲學(xué)是徹底的將代碼、樣式分離; Django從根本上杜絕在模板中進(jìn)行編碼、處理數(shù)據(jù)的可能。

Django 、Flask、Tornado的對(duì)比

1.Django走的是大而全的方向,開(kāi)發(fā)效率高。它的MTV框架,自帶的ORM,admin后臺(tái)管理,自帶的sqlite數(shù)據(jù)庫(kù)和開(kāi)發(fā)測(cè)試用的服務(wù)器給開(kāi)發(fā)者提高了超高的開(kāi)發(fā)效率

2.Flask是輕量級(jí)的框架,自由,靈活,可擴(kuò)展性很強(qiáng),核心基于Werkzeug WSGI工具和jinja2模板引擎

3.Tornado走的是少而精的方向,性能優(yōu)越。它最出名的是異步非阻塞的設(shè)計(jì)方式Tornado的兩大核心模塊: 1、iostraem:對(duì)非阻塞式的socket進(jìn)行簡(jiǎn)單的封裝 2、ioloop:對(duì)I/O多路復(fù)用的封裝,它實(shí)現(xiàn)了一個(gè)單例

什么是wsgi,uwsgi,uWSGI?

WSGI:web服務(wù)器網(wǎng)關(guān)接口,是一套協(xié)議。用于接收用戶請(qǐng)求并將請(qǐng)求進(jìn)行初次封裝,然后將請(qǐng)求交給web框架

實(shí)現(xiàn)wsgi協(xié)議的模塊: 1.wsgiref,本質(zhì)上就是編寫(xiě)一個(gè)socket服務(wù)端,用于接收用戶請(qǐng)求(django) 2.werkzeug,本質(zhì)上就是編寫(xiě)一個(gè)socket服務(wù)端,用于接收用戶請(qǐng)求(flask)

uwsgi:與WSGI一樣是一種通信協(xié)議,它是uWSGI服務(wù)器的獨(dú)占協(xié)議,用于定義傳輸信息的類型

uWSGI:是一個(gè)web服務(wù)器,實(shí)現(xiàn)了WSGI協(xié)議,uWSGI協(xié)議,http協(xié)議,

django請(qǐng)求的生命周期?

1.wsgi,請(qǐng)求封裝后交給web框架 (Flask、Django)

2.中間件,對(duì)請(qǐng)求進(jìn)行校驗(yàn)或在請(qǐng)求對(duì)象中添加其他相關(guān)數(shù)據(jù),例如:csrf、request.session -

3.路由匹配 根據(jù)瀏覽器發(fā)送的不同url去匹配不同的視圖函數(shù)

4.視圖函數(shù),在視圖函數(shù)中進(jìn)行業(yè)務(wù)邏輯的處理,可能涉及到:orm、templates => 渲染 -

5.中間件,對(duì)響應(yīng)的數(shù)據(jù)進(jìn)行處理。

6.wsgi,將響應(yīng)的內(nèi)容發(fā)送給瀏覽器。

簡(jiǎn)述什么是FBV和CBV?

FBV和CBV本質(zhì)是一樣的 基于函數(shù)的視圖叫做FBV,基于類的視圖叫做CBV 在python中使用CBV的優(yōu)點(diǎn):

1.提高了代碼的復(fù)用性,可以使用面向?qū)ο蟮募夹g(shù),比如Mixin(多繼承)

2.可以用不同的函數(shù)針對(duì)不同的HTTP方法處理,而不是通過(guò)很多if判斷,提高代碼可讀性。

感謝各位的閱讀!關(guān)于django面試會(huì)問(wèn)哪些問(wèn)題就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI