1、中間件
中間件一般做認證或批量請求處理,django中的中間件,其實是一個類,在請求和結束后,django會根據自己的規則在合適的時機執行中間件中相應的方法,
如請求過來 執行process_request, view,process_response方法
2、Django、Tornado、Flask各自的優勢
Django:Django無socket,django的目的是簡便,快速開發,並遵循MVC設計,多個組件可以很方便的以“插件”形式服務於整個框架,
django有許多功能強大的第三方插件。django具有很強的可擴展性。
Tornado:它是非阻塞式服務器,而且速度相當快,得力於其 非阻塞的方式和對epoll的運用,Future對象,缺點:沒有session,需要自定制
Flask:是一個微型的web框架,配合SQLALchemy來使用,jinja2模板, werkzeug接口
3、 django版本,Python版本,linux版本
django:1.11
Python:3.6
linux:6.9
4、django的template的注釋是什么樣子的
單行:{#注釋#}
多行注釋:{%comment%}
5、django怎么弄並發的
nginx+uwsig為django提供高並發,nginx的並發能力超過,單台並發能力過萬,在純靜態的web服務中更是突出其優越的地方,由於底層使用epoll異步IO模型進行處理。
6、tornodo的ioloop知道是什么嗎?
事件循環
7、select_related和prefetch_related,Q和F
select_related:一對多使用,查詢主動做連表
prefetch_related:多對多或者一對多的時候使用,不做連表,做多次查詢
Q:用於構造復雜查詢條件
F:更新時用於獲取原來的值,專門取對象中某一列進行操作
8、什么是ORM?
ORM,即Object-Relational Mapping(對象關系映射),它的作用是在關系型數據庫和業務實體對象之間做一個映射
ORM優缺點:
優點:擺脫復雜的SQL操作,適應快速開發,讓數據結果變得簡單,數據庫遷移成本更低
缺點:性能較差,不適用於大型應用,復雜的SQL操作還需要通過SQL語句實現
9、CORS跨域資源共享
首先會發送"預檢"opption",請求,如果"預檢"成功,則發送真實數據。
10、Django的Form主要具有以下功能?
生成HTMl標簽,驗證用戶數據 is_vaild,HTML Form提交保留上次提交數據,初始化頁面顯示內容
11、CBV和FBV
CBV在指定的類上面加上裝飾器或在此方法上面添加裝飾器 @method_decorator,並繼承view
12、cookie及session
cookie:是保留在客戶端上面的一組鍵值對,cookie不是很安全,別人可以分析存放在本地的cookie
session:是保存在服務器上面的一組鍵值對,依賴與cookie,安全指數比cookie高
13、django的請求生命周期
請求來了先到uwsgi,把請求做一部分分裝給django框架,然后經過所有的中間件,路由,視圖,視圖處理再返回給中間件,中間件在返回給uwsgi,在返回給用戶。
14、uwsgi和wsgi
wsgi:是web服務器網關接口,是pyhton應用程序或框架和web服務器之間的一種接口,其廣泛使用的是django框架。
uwsgi:是一個web服務器,它實現了wsgi協議,Nginx中HttpUwsgiModule的作用是與Uwsgi服務器進行交換
15、解釋下django - debug -toolbar的使用
使用django開發站點時,可以使用django-debug-toolbar來進行調試,在settings.py中添加 'debug—toolbar.midleware.Debug ToolbarMiddleware'到項目的MIDDLEWARE_CLASSES內。