python框架django面试问别人什么问你_django面试会问什么
以下是Django面試中常見的一些問題
對Django的認識?
1.Django是走大而全的方向,它最出名的是其全自動化的管理后臺:只需要使用起ORM,做簡單的對象定義,它就能自動生成數(shù)據(jù)庫結(jié)構(gòu)、以及全功能的管理后臺。
2.Django內(nèi)置的ORM跟框架內(nèi)的其他模塊耦合程度高。應(yīng)用程序必須使用Django內(nèi)置的ORM,否則就不能享受到框架內(nèi)提供的種種基于其ORM的便利;理論上可以切換掉其ORM模塊,但這就相當(dāng)于要把裝修完畢的房子拆除重新裝修,倒不如一開始就去毛胚房做全新的裝修。
3.Django的賣點是超高的開發(fā)效率,其性能擴展有限;采用Django的項目,在流量達到一定規(guī)模后,都需要對其進行重構(gòu),才能滿足性能的要求。
4.Django適用的是中小型的網(wǎng)站,或者是作為大型網(wǎng)站快速實現(xiàn)產(chǎn)品雛形的工具。
5.Django模板的設(shè)計哲學(xué)是徹底的將代碼、樣式分離; Django從根本上杜絕在模板中進行編碼、處理數(shù)據(jù)的可能。
Django 、Flask、Tornado的對比
1.Django走的是大而全的方向,開發(fā)效率高。它的MTV框架,自帶的ORM,admin后臺管理,自帶的sqlite數(shù)據(jù)庫和開發(fā)測試用的服務(wù)器給開發(fā)者提高了超高的開發(fā)效率
2.Flask是輕量級的框架,自由,靈活,可擴展性很強,核心基于Werkzeug WSGI工具和jinja2模板引擎
3.Tornado走的是少而精的方向,性能優(yōu)越。它最出名的是異步非阻塞的設(shè)計方式Tornado的兩大核心模塊: 1、iostraem:對非阻塞式的socket進行簡單的封裝 2、ioloop:對I/O多路復(fù)用的封裝,它實現(xiàn)了一個單例
什么是wsgi,uwsgi,uWSGI?
WSGI:web服務(wù)器網(wǎng)關(guān)接口,是一套協(xié)議。用于接收用戶請求并將請求進行初次封裝,然后將請求交給web框架
實現(xiàn)wsgi協(xié)議的模塊: 1.wsgiref,本質(zhì)上就是編寫一個socket服務(wù)端,用于接收用戶請求(django) 2.werkzeug,本質(zhì)上就是編寫一個socket服務(wù)端,用于接收用戶請求(flask)
uwsgi:與WSGI一樣是一種通信協(xié)議,它是uWSGI服務(wù)器的獨占協(xié)議,用于定義傳輸信息的類型
uWSGI:是一個web服務(wù)器,實現(xiàn)了WSGI協(xié)議,uWSGI協(xié)議,http協(xié)議,
django請求的生命周期?
1.wsgi,請求封裝后交給web框架 (Flask、Django)
2.中間件,對請求進行校驗或在請求對象中添加其他相關(guān)數(shù)據(jù),例如:csrf、request.session -
3.路由匹配 根據(jù)瀏覽器發(fā)送的不同url去匹配不同的視圖函數(shù)
4.視圖函數(shù),在視圖函數(shù)中進行業(yè)務(wù)邏輯的處理,可能涉及到:orm、templates => 渲染 -
5.中間件,對響應(yīng)的數(shù)據(jù)進行處理。
6.wsgi,將響應(yīng)的內(nèi)容發(fā)送給瀏覽器。
簡述什么是FBV和CBV?
FBV和CBV本質(zhì)是一樣的 基于函數(shù)的視圖叫做FBV,基于類的視圖叫做CBV 在python中使用CBV的優(yōu)點:
1.提高了代碼的復(fù)用性,可以使用面向?qū)ο蟮募夹g(shù),比如Mixin(多繼承)
2.可以用不同的函數(shù)針對不同的HTTP方法處理,而不是通過很多if判斷,提高代碼可讀性。
總結(jié)
以上是生活随笔為你收集整理的python框架django面试问别人什么问你_django面试会问什么的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 语音控制 python_用Python编
- 下一篇: laravel auth login 重