談談你對HTTP協議的認識。html
什麼是協議?
協議,是指通訊的雙方,在通訊流程或內容格式上,共同遵照的標準。
什麼是http協議?
http協議,是互聯網中最多見的網絡通訊標準。
http協議的特色
①通訊流程:斷開式(無狀態)
斷開式:http協議每次響應完成後,會斷開與客戶端的鏈接
無狀態:因爲服務器斷開了以前的鏈接,就沒法知曉鏈接間的關係
②內容格式:消息頭和消息體
列舉Http請求中常見的請求方式前端
HTTP請求的方法: HTTP/1.1協議中共定義了八種方法(有時也叫「動做」),來代表Request-URL指定的資源不一樣的操做方式 1、OPTIONS 返回服務器針對特定資源所支持的HTTP請求方法,也能夠利用向web服務器發送‘*’的請求來測試服務器的功能性 2、HEAD 向服務器索與GET請求相一致的響應,只不過響應體將不會被返回。這一方法能夠再沒必要傳輸整個響應內容的狀況下,就能夠獲取包含在響應小消息頭中的元信息。 3、GET 向特定的資源發出請求。它本質就是發送一個請求來取得服務器上的某一資源。資源經過一組HTTP頭和呈現數據(如HTML文本,或者圖片或者視頻等)返回給客戶端。GET請求中,永遠不會包含呈現數據。 4、POST 向指定資源提交數據進行處理請求(例如提交表單或者上傳文件)。數據被包含在請求體中。POST請求可能會致使新的資源的創建和/或已有資源的修改。 Loadrunner中對應POST請求函數:web_submit_data,web_submit_form 5、PUT 向指定資源位置上傳其最新內容 6、DELETE 請求服務器刪除Request-URL所標識的資源 7、TRACE 回顯服務器收到的請求,主要用於測試或診斷 8、CONNECT HTTP/1.1協議中預留給可以將鏈接改成管道方式的代理服務器。 注意: 1)方法名稱是區分大小寫的,當某個請求所針對的資源不支持對應的請求方法的時候,服務器應當返回狀態碼405(Mothod Not Allowed);當服務器不認識或者不支持對應的請求方法時,應返回狀態碼501(Not Implemented)。 2)HTTP服務器至少應該實現GET和HEAD/POST方法,其餘方法都是可選的,此外除上述方法,特定的HTTP服務器支持擴展自定義的方法。
get請求和post請求的區別mysql
區別:
get請求無消息體,只能攜帶少許數據
post請求有消息體,能夠攜帶大量數據
攜帶數據的方式:
get請求將數據放在url地址中
post請求將數據放在消息體中
GET請求請提交的數據放置在HTTP請求協議頭中,而POST提交的數據則放在實體數據中;
GET方式提交的數據最多隻能有1024字節,而POST則沒有此限制。
簡述MVC模式和MVT模式nginx
MVC
Web服務器開發領域裏著名的MVC模式,所謂MVC就是把Web應用分爲模型(M),控制器(C)和視圖(V)三層,他們之間以一種插件式的、鬆耦合的方式鏈接在一塊兒,模型負責業務對象與數據庫的映射(ORM),視圖負責與用戶的交互(頁面),控制器接受用戶的輸入調用模型和視圖完成用戶的請求。
MTV
Django的MTV模式本質上和MVC是同樣的,也是爲了各組件間保持鬆耦合關係,只是定義上有些許不一樣,Django的MTV分別是值:
M 表明模型(Model): 負責業務對象和數據庫的關係映射(ORM)。
T 表明模板 (Template):負責如何把頁面展現給用戶(html)。
V 表明視圖(View): 負責業務邏輯,並在適當時候調用Model和Template。
除了以上三層以外,還須要一個URL分發器,它的做用是將一個個URL的頁面請求分發給不一樣的View處理,View再調用相應的Model和Template
簡述Django請求生命週期web
簡述什麼是FBV和CBVsql
FBV(function base views) 就是在視圖裏使用函數處理請求。 CBV(class base views) 就是在視圖裏使用類處理請求。 Python是一個面向對象的編程語言,若是隻用函數來開發,有不少面向對象的優勢就錯失了(繼承、封裝、多態)。因此Django在後來加入了Class-Based-View。可讓咱們用類寫View。這樣作的優勢主要下面兩種: 提升了代碼的複用性,可使用面嚮對象的技術,好比Mixin(多繼承) 能夠用不一樣的函數針對不一樣的HTTP方法處理,而不是經過不少if判斷,提升代碼可讀性
談一談你對ORM的理解數據庫
ORM是「對象-關係-映射」的簡稱。
MVC或者MVC框架中包括一個重要的部分,就是ORM,它實現了數據模型與數據庫的解耦,即數據模型的設計不須要依賴於特定的數據庫,經過簡單的配置就能夠輕鬆更換數據庫,這極大的減輕了開發人員的工做量,不須要面對因數據庫變動而致使的無效勞動
rest_framework 認證組件的流程django
什麼是中間件並簡述其做用編程
django中怎麼寫原生SQL跨域
F和Q的做用
values和value_list區別
如何使用django orm批量建立數據
Django中的請求生命週期
http訪問流程
命令migrate 和makemigrations的差異
視圖函數中,接收的請求對象經常使用方法和屬性有哪些
經常使用視圖響應的方式是什麼?
HTTP響應常見狀態碼分類
路由匹配原則是什麼?
緩存系統類型有哪些
解決跨域的經常使用方式是什麼?
信號的做用是什麼?
Django的Model的繼承有幾種形式,分別是什麼
Django中查詢queryset時什麼狀況下用Q
Django中想驗證表單提交是否格式正確須要用到Form中的哪一個函數
orm如何取消級聯
Django中如何讀取和保存session,整個session的運行機制是什麼
簡述Django對http請求的執行流程
Django中當用戶登陸到A服務器進入登錄狀態,下次被nginx代理到B服務器會出現什麼影響
跨域請求Django是如何處理的
查詢集的兩大特性?什麼是惰性執行
查詢集返回的列表過濾器有哪些
如何獲取django urlpatterns裏面註冊的全部url?
django路由系統中include是幹嗎用的?
django2.0中的path與django1.xx裏面的url有什麼區別?
urlpatterns中的name與namespace有什麼做用?你是如何使用的?
如何根據urlpatterns中的name反向生成url,這樣反向生成url的方式有幾種?
如何給一個字段設置一個主鍵?
blank=True與null=True有什麼區別?
如何設置一個帶有枚舉值的字典?
DateTimeField類型中的auto_now與auto_now_add有什麼區別
values()與values_list()有什麼區別?
selected_related與prefetch_related有什麼區別?
當刪除一個外鍵的時候,如何把與其關聯的對應關係刪除
class Meta中的元信息字段有哪些
多對多關聯的表,如何插入數據?如何刪除數據?如何更新數據?
django的M2M關係,如何手動生成第三張表?
如何使用原生mysql?
在Django中,服務端給客戶端響應信息有幾種方式?分別是什麼?
在視圖函數中,經常使用的驗證裝飾器有哪些?
如何給一個視圖函數加上緩存?
web框架的本質是什麼?
什麼是MVC、什麼是MTV?
建立Django工程、Django app、以及運行的命令
Django App的目錄結構
簡述一下Django聲明週期
Django 獲取用戶前端請求數據的幾種方式
描述下 自定義simple_tag
什麼是Cookie、如何獲取、設置Cookie
什麼是session,與cookie的對比、設置、獲取、清空session
什麼是CSRF,及防範方式
django 中間件生命週期
get請求和post請求的區別
圖書管理系統的表結構是怎麼設計的?
圖書管理系統路由系統你用到了name了嗎? 爲何要使用呢?
圖書管理系統的模板你是怎麼用的? 重複的代碼怎麼解決?
MVC和MTV分別是什麼?
WSGI / uwsgi/ uWSGI區分
如何使用django加密
解釋blank和null
QueryDict和dict區別