django的相關小記錄

2021-09-24 00:25:30 字數 2137 閱讀 3121

如果不熟悉django的,請去django的基礎教程裡面做檢視,當然我這裡沒有基礎教程。

一、訪問流程

對於乙個請求程式在django的處理流程

客戶端(瀏覽器)-->wsgi-->中介軟體-->路由檢視-->model/orm-->response-->中介軟體-->wsgi-->客戶端(瀏覽器)

二、相關流程概述和功能描述

1、客戶端

即瀏覽器,不做過多解釋

2、wsgi

wsgi是將python伺服器程式連線到web伺服器的通用協議。需要結合看一下uwsgi。

3、中介軟體

在django中,中介軟體其實就是乙個類,在請求到來和結束後,django會根據自己的規則在合適的時機執行中介軟體中相應的方法。位置在settings.py的middleware_classes 變數

意思就是django在處理相關請求的時候,處理開始前和處理結束後都回去中介軟體那裡執行以下中介軟體。做狀態檢視和異常結果反饋。

4、路由檢視

urls.py 和views.py,不做解釋

5、models/orm

資料庫的處理和相關操作,django有自己直接對接資料庫的方法

以下是查詢,插入方法知道的就一種,不多說了

#<1> all():                  查詢所有結果 

#<2> filter(**kwargs):       它包含了與所給篩選條件相匹配的物件。獲取不到返回none

#<3> get(**kwargs):          返回與所給篩選條件相匹配的物件,返回結果有且只有乙個。獲取不到會

抱胸#如果符合篩選條件的物件超過乙個或者沒有都會丟擲錯誤。

#<4> exclude(**kwargs):      它包含了與所給篩選條件不匹配的物件

#<5> order_by(*field):       對查詢結果排序

#<6> reverse():              對查詢結果反向排序 

#<8> count():                返回資料庫中匹配查詢(queryset)的物件數量。 

#<9> first():                返回第一條記錄 

#<10> last():                返回最後一條記錄 

#<11> exists():              如果queryset包含資料,就返回true,否則返回false

#<12> values(*field):        返回乙個valuequeryset——乙個特殊的queryset,執行後得到的並不是一

系model的例項化物件,而是乙個可迭代的字典序列

#<13> values_list(*field):   它與values()非常相似,它返回的是乙個元組序列,values返回的是乙個

字典序列

#<14> distinct():            從返回結果中剔除重複紀錄

三、django對高併發的方法

3、優劣說明,低併發apache比nginx好,高併發nginx完虐apache,所以直接配置nginx。

四、django的安全應對方法

1、在form表單中新增,django在給瀏覽器cookie的時候,會生成乙個csrf_token值,表單的提交的時候加上,會攜帶這個值,去做驗證。

2、就是一些其他的了,如敏感操作,重要資料和錢財交易,要做確認的。

五、django是mtv模式

models資料庫、templates模板、views業務邏輯檢視處理

六、django內建元件

1、admin.py,後台配置管理

2、models.py,負責業務物件與資料庫的物件(orm)

3、forms.py,1.生成html**2.資料有效性校驗3校驗資訊返回並展示

5、使用者認證,django有自帶的乙個表,user_auth,通過方法可直接驗證使用者登入和密碼修改,不過也要看使用場合,這個功能較為單一,不易擴充套件。看情況使用。

6、cookie和session,emmmm,不說。

七、django快取

django有自帶的快取,記得要在settings.py裡面進行設定

1、資料庫快取

2、記憶體快取

3、磁碟快取

4、redis快取。

快取後面再做詳細記錄

Django細節小記

前記 django的orm 模組有很多函式細節,要學會多看文件學習函式的細節簡言之,annotate 得到的是查詢集,類似all 只不過多了一列屬性,annotate 新增的,例如統計每個出版社有多少本書 書外來鍵到出版社 但是統計書的單價總和,用annotate 會給每個書記錄加個總和屬性,此時不...

Django學習小記 CBV

乙個url除了對應函式外,還能對應乙個類 view.py 例如 from django.views import view 繼承它 class login view defget self,request pass defpost self,request pass urlpatterns path...

心情小記錄

這些天,每天9點鐘到達實驗室,然後除了吃飯,一坐就是一整天。這些天,有時為乙個問題絞盡腦汁,想過放棄,卻都堅持了過來。這些天,雖然有點疲累,但疲累後的睡夢卻是最香甜的,生活才是最充實的。這些天,時間見證著點滴的進步,還有那種堅持到最後成功。不怕辛苦,不怕勞累,這是我來到這裡的承諾,我會做到,也在做著...