class A:
? ? def __init__(self):
? ? ? ? print("A")
class B(A):
? ? pass
? ? #def __init__(self):
? ? #? ? print("B")
class C(A):
? ? def __init__(self):
? ? ? ? print("C")
class D(B,C):
? ? pass
? ? #def __init__(self):
? ? #? ? print("D")
d1 = D()
python 2 顯示A,python 3顯示C
python 2的繼承順序是D -> B?-> A?-> C 深度優(yōu)先
?python 3的繼承順序是D -> B?-> C -> A 廣度優(yōu)先
HTTP協(xié)議是超文本傳輸協(xié)議,是用于從萬維網(wǎng)服務(wù)器傳輸超文本到本地瀏覽器的傳送協(xié)議。
Django的生命周期
1. 當(dāng)用戶在瀏覽器中輸入url時,瀏覽器會生成請求頭和請求體發(fā)給服務(wù)端
請求頭和請求體中會包含瀏覽器的動作(action),這個動作通常為get或者post,體現(xiàn)在url之中.2. url經(jīng)過Django中的wsgi,再經(jīng)過Django的中間件,最后url到過路由映射表,在路由中一條一條進(jìn)行匹配,
一旦其中一條匹配成功就執(zhí)行對應(yīng)的視圖函數(shù),后面的路由就不再繼續(xù)匹配了.3. 視圖函數(shù)根據(jù)客戶端的請求查詢相應(yīng)的數(shù)據(jù).返回給Django,然后Django把客戶端想要的數(shù)據(jù)做為一個字符串返回給客戶端.4. 客戶端瀏覽器接收到返回的數(shù)據(jù),經(jīng)過渲染后顯示給用戶
前端請求—>nginx—>uwsgi.—>中間件—>url路由—->view試圖—>orm—->拿到數(shù)據(jù)返回給view—->試圖將數(shù)據(jù)渲染到模版中拿到字符串—->中間件 —>uwsgi—->nginx—->前端渲染。
三次握手四次揮手的官方解釋
HTTP是一個基于TCP/IP通信協(xié)議來傳遞數(shù)據(jù)
網(wǎng)絡(luò)的七層協(xié)議:
?7?應(yīng)用層?6?表示層?5 會話層 4?傳輸層?3 網(wǎng)絡(luò)層 2?數(shù)據(jù)鏈路層?1?物理層
GIL介紹:全局解釋器鎖
python中GIL使得同一個時刻只有一個線程在一個cpu上執(zhí)行
TCP和UDP的區(qū)別
是否連接 面向連接 面向非連接
傳輸可靠性 可靠 不可靠
應(yīng)用場合 傳輸大量數(shù)據(jù) 少量數(shù)據(jù)
速度 慢 快
Django中間件
process_request
process_view
process_template_response
process_exception
process_response?
mysql的索引
MVC
MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設(shè)計典范
cookie、session的設(shè)置過期時間:
max_age是一個整數(shù),表示在指定秒數(shù)后過期。
expires是一個datetime或timedelta對象,會話將在這個指定的日期/時間過期。
如果設(shè)置session.permanent=True,那么就會默認(rèn)在31天后過期。如果不想在31天后過期,那么可以設(shè)置app.config[‘PERMANENT_SESSION_LIFETIME’] = timedelta(hour=2)在兩個小時后過期。
nginx
反向代理,負(fù)載均衡,動靜分離