Python網路知識與Django重要概念

2021-10-01 20:01:16 字數 3700 閱讀 5001

正規表示式物件的searchmatch方法有什麼區別?

search:匹配當前字串中符合正規表示式中第乙個符合的字串,沒有返回none

match:匹配當前字串的開頭是否是該正規表示式,沒有返回none

當多個執行緒競爭乙個物件且該物件並非執行緒安全的時候應該怎麼辦?

說一下死鎖產生的條件以及如何避免死鎖的發生。

請闡述tcp的優缺點。

優點:可靠,穩定,tcp在傳輸之前都會經過三次握手來建立連線,資料傳輸完以後會自動斷開連線釋放資源。

缺點:效率低,占用資源高,易被攻擊。傳輸資料必須先建立連線,在傳輸資料的時候,確認機制、重傳機制、擁塞機制等都會消耗大量的時間。tcp三次握手機制也會導致tcp容易被利用,實現dos、ddos、cc等攻擊。

http請求的get和post有什麼區別?

get是從伺服器請求資料,post是往伺服器傳送資料。

get的安全性非常低,post安全性高。

get是把引數新增到url中傳遞給服務端,post是將資料放在html的body中傳送給服務端的,使用者看不到該過程。

get的引數有長度限制不能大於2kb,post傳送的資料量較大,一般預設不限制

get引數為ascii編碼,post無編碼限制.

get可以快取收藏為書籤,post不能被快取.

說一些你知道的http響應狀態碼。

200:響應成功,請求被正常處理

204:請求被受理但是沒有任何資源返回

301:永久重定向

304:臨時重定向

400:請求語法有誤,伺服器無法識別

401:請求不要認證

403:請求的資源禁止訪問

404:請求的資源找不到

405:請求的方式不被允許

500:內部伺服器錯誤

501:伺服器繁忙

簡單闡述https的工作原理。

向ca機構申請數字證書然後配置在server端。

client端向server端傳送https請求。

server端返回數字證書,加密演算法和公鑰。

client端驗證接受到的數字證書是否和本地受信任的證書的資訊一致。

證書驗證有效之後,client端生成乙個隨機數用於對稱加密的金鑰。

client端用證書裡面的公鑰對自己生成的金鑰進行加密。

client端向server端傳送該金鑰的密文。

server端通過私鑰來解密該密文,拿到對稱加密的金鑰。

之後client和server就可以通過該金鑰來進行加密通訊。

闡述django專案中乙個請求的生命週期。

django專案中實現資料介面時如何解決跨域問題。

settings.py檔案中配置

# 新增跨域請求頭應用[.

..'corsheaders',]

# 新增跨域中介軟體

middleware =[.

..'corsheaders.middleware.corsmiddleware',.

..]# 跨域允許的請求方式,可以使用預設值,預設的請求方式為:

# from corsheaders.defaults import default_methods

# cors_allow_headers = default_headers

cors_allow_methods =

('get'

,'post'

,'put'

,'patch'

,'delete'

,'options',)

# 允許跨域的請求頭,可以使用預設值,預設的請求頭為:

# 跨域請求時,是否執行攜帶cookie,預設為false

cors_allow_credentials =

true

# 允許所有主機執行跨站點請求,預設為false

# 如果沒設定該引數,則必須設定白名單,執行部分白名單的主機才能執行跨站點請求

cors_origin_allow_all =

true

django專案中如何對接redis快取記憶體服務。

settings.py檔案中配置

caches =

,'password'

:'密碼',}

},"my_redis":,

'password'

:'123456',}

},}# 使用引擎

session_engine =

'django.contrib.sessions.backends.cache'

# 設定過期時間86400秒

session_cookie_age =

86400

請說明cookie和session之間的關係。

cookie是乙個事件儲存在客戶端(瀏覽器),session是乙個物件儲存在服務端;session依賴於cookie,使用者每次請求伺服器請求頭都會攜帶cookie,cookie中儲存了session識別符號,伺服器通過該識別符號獲取到跟請求對應的session物件

說一下索引的原理和作用。

作用:索引是關係型資料庫中用來提公升查詢效能最為重要的手段,索引就好比是一本書的目錄,如果需要查詢某個知識點,只需要在目錄中查詢。

原理:索引的底層演算法是b-tree(b樹),b樹是一種自平衡樹,能夠保持資料有序,這種資料結構能夠讓查詢資料,順序訪問、插入資料刪除資料都在對數時間內完成。

是否使用過nginx實現負載均衡?用過哪些負載均衡演算法?

乙個儲存整數(int)的陣列,除了乙個元素出現過1次外,其他元素都出現過兩次,請找出這個元素.

item = [i for i in list1 if list1.count(i) == 1]
有12個外觀相同的籃球,其中1個的重量和其他11個的重量不同(有可能輕有可能重),現在有乙個天平可以使用,怎樣才能通過最少的稱重次數找出這顆與眾不同的球。

Window環境下Python和Django的安裝

3.安裝python 2.7.2.msi 雙擊,配置安裝目錄。本文安裝到f 4.我的電腦 屬性 高階 環境變數 系統變數中找到 path 新增 f python27 5.開始 執行 輸入 cmd 游標下輸入python 如圖顯示為安裝成功。如報錯 不是內部命令.請參看步驟4.6.解壓縮django ...

linux環境部署python3 django

2.安裝依賴環境 yum y install zlib devel bzip2 devel openssl devel ncurses devel sqlite devel readline devel tk devel gdbm devel db4 devel libpcap devel xz d...

Linux下安裝Python3和Django

第一步 首先解決安裝依賴關係,需要安裝以下軟體包,複製貼上即可 這裡有乙個坑是有的人可能無法從win中直接通過xshell拖到linux中,這裡需要安裝乙個lrzsz軟體就行了 tar zxvf python 3.8.0.tgz 解壓後如下圖所示 第三步 釋放編譯檔案,並進行編譯安裝 這一步一般用來...