07-01 django 1-5


1. Django ORM查詢中select_related和prefetch_related的區別??

def select_related(self, *fields)
    性能相關:表之間進行join連表操作,一次性獲取關聯的數據。

    總結:
    1. select_related主要針一對一和多對一關系進行優化。
    2. select_related使用SQL的JOIN語句進行優化,通過減少SQL查詢的次數來進行優化、提高性能。

def prefetch_related(self, *lookups)
    性能相關:多表連表操作時速度會慢,使用其執行多次SQL查詢在Python代碼中實現連表操作。

    總結:
    1. 對於多對多字段(ManyToManyField)和一對多字段,可以使用prefetch_related()來進行優化。
    2. prefetch_related()的優化方式是分別查詢每個表,然后用Python處理他們之間的關系。

2. Django ORM是什么?

對象關系映射,通過models中的類來對應數據庫中的一個表,一個對象對應一個數據行,一個屬性對應數據庫中的一個字段

對象關系映射

3. Django創建項目的命令?

django-admin startproject 項目名稱
python manage.py startapp 應用 app 名

4. Django 創建項目后,項目文件夾下的組成部分(對mvt 的理解)?

項目文件夾下的組成部分:
manage.py 是項目運行的入口,指定配置文件路徑。
與項目同名的目錄,包含項目的配置文件。
__init__.py 是一個空文件,作用是這個目錄可以被當作包使用,也可以做一些初始化操作。
settings.py 是項目的整體配置文件。
urls.py 是項目的 URL 配置文件。
wsgi.py 是項目與 WSGI 兼容的 Web 服務器。

5. 對 MVC,MVT解讀的理解?

M:Model,模型,和數據庫進行交互
V:View,視圖,負責產生Html頁面
C:Controller,控制器,接收請求,進行處理,與M和V進行交互,返回應答。

1、 用戶點擊注按鈕,將要注冊的信息發送給網站服務器。
2、 Controller控制器接收到用戶的注冊信息,Controller會告訴Model層將用戶的注冊信息保存到數據庫
3、 Model層將用戶的注冊信息保存到數據庫
4、 數據保存之后將保存的結果返回給Model模型,
5、 Model層將保存的結果返回給Controller控制器。
6、 Controller控制器收到保存的結果之后,或告訴View視圖,view視圖產生一個html頁面。
7、 View將產生的Html頁面的內容給了Controller控制器。
8、 Controller將Html頁面的內容返回給瀏覽器。
9、 瀏覽器接受到服務器Controller返回的Html頁面進行解析展示。
M:Model,模型,和MVC中的M功能相同,和數據庫進行交互。
V:view,視圖,和MVC中的C功能相同,接收請求,進行處理,與M和T進行交互,返回應答。
T:Template,模板,和MVC中的V功能相同,產生Html頁面

1、 用戶點擊注冊按鈕,將要注冊的內容發送給網站的服務器。
2、 View視圖,接收到用戶發來的注冊數據,View告訴Model將用戶的注冊信息保存進數據庫。
3、 Model層將用戶的注冊信息保存到數據庫中。
4、 數據庫將保存的結果返回給Model
5、 Model將保存的結果給View視圖。
6、 View視圖告訴Template模板去產生一個Html頁面。
7、 Template生成html內容返回給View視圖。
8、 View將html頁面內容返回給瀏覽器。
9、 瀏覽器拿到view返回的html頁面內容進行解析,展示。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM