django基礎筆記

django開發web項目的開源框架

django的作用:簡單開發數據庫驅動的網站,

MVC的核心思想:低耦合,高內聚
低耦合就是模塊與模塊之間依賴度低,可以獨立,
高內聚就是邏輯代碼聯繫越緊密內聚就越高,一般情況下,只要模塊與模塊之間的耦合度比較低那麼內聚自然就高了
MVC中的V代表構造要響應給客戶端的html頁面,內嵌模板引擎而在MVT中的T代表了這個
C controller:接收請求,邏輯處理,響應請求。與MVT中的V view對應

MVT特點:封裝度高,強調代碼的服用,模塊與模塊之間的耦合度較低
django遵循MVC的設計模式,但是它使用的框架叫做MVT但是兩個人的設計模式的思想是一樣的
設計模式就是一套被人反覆使用的,經過分類的,代碼設計經驗的一個總結
M:就是model,對數據庫層的操作,內嵌了ORM框架,ORM框架將數據庫表的每一次與其對應的對象進行關聯,使我們可可以用面向對象的方恨式去操作數據庫,而不需要寫sql語句
V: 就是視圖,就受請求,邏輯處理,返回數據
T:template用與構造要響應給客戶端的html頁面,內嵌了模板引擎,實現了動態展示數據,
關係:當客戶端輸入網址的時候,view模塊接收請求,需要數據的話就通過model模塊進行數據的查詢,拿到數據後返回給vievie經過邏輯處理後,然後通過調用template模板進行數據的填充和渲染返回給view一個html頁面,view再把數據響應給客戶端

模型,當前項目的開發都是基於數據的
要先分析出項目中所需要的數據然後設計數據庫表
先定義模型類,然後通過模型類和對象完成對數據庫的增刪改查

模型中使用了ORM框架,他會把數據庫表的行與其相應的對象建立關聯,可以使用面向對象去操作數據庫
1.創建模型類
2.模型遷移
分爲兩步(1)先根據模型類生成創建表的語句 makemigrations
(2)執行遷移,根據上面生成的語句在數據庫中建表
3.操作數據庫
通過創建的模型類和對象完成數據庫表的增刪改查
(1)測試的方法,進入當前項目的shell ,進行簡單的增刪改查API操作
python manage.py shell
直接導入book應用中的models模塊中的模型類
通過模型類創建對象,然後用這個對象去修改去添加內容,操作完之後要使用 對象.save()來保存(我覺得也應該是提交事務)
查詢表中的所有記錄
模型類類名.objects.all()
通過對象名,delete()來刪除這個對象,在查詢時表裏面就沒有這個對象的相關信息

站點管理(後臺):
分爲內容發佈和公共訪問
內容發佈的部分由管理員負責查看,添加,修改,刪除數據
django可以根據創建的模型類自動生成管理模塊

管理模塊的步驟:
1.管理界面本地化
在項目管理目錄的settings中修改語言,時區
2.創建管理員
python manage.py createsuperuser
3.註冊模型類
在應用下的admin中註冊站點管理信息模型類中 admin.site.register(模型類類名)
4.自定義站點管理界面
在應用下的admin中自定義站點管理信息模型類,這個類繼承於站點管理中的模型,這個類用於設置要展示的模型類中的屬性,通過在list_display這個列表中添加字段名就可以了
然後註冊信息模型類及站點管理類
admin.site.register(模型類類名,模型類站點管理類)

視圖和URL
視圖就是用來接收用戶請求,處理邏輯,返回數據的模塊
一個視圖就是一個函數,視圖的第一個參數是http請求類型的對象request,包含了所有的請求信息

如果不使用模板的話,視圖必須返回Httpresponse(響應)獨象,包含返回給請求者的響應信息。需要導入HttpResponse模塊,從django.http中導入

如果使用了模板的話 返回
render(request,模板的路徑,上下文(是一個字典,一般封裝從數據庫中查到的數據))返回html頁面
上下文使用context{‘key’,’value’}

但是想要使用模板的話得現在項目管理目錄下的設置文件中指明模板的加載路徑(怎麼指明?將項目路徑與模板路徑進行拼接,指明模板的路徑)
項目的根路徑:BASE_DIR

當用戶在瀏覽器中輸入中輸入URL(網址)的時候,首先會從項目的管理目錄的settints設置文件中ROOT_URLCONG(根路徑的URL配置)屬性,將URL傳遞給項目管理目錄下的url.py這個文件(這個文件的作用就是應用路由配置,在這裏配置URL正則,如果匹配成功j就把某個應用下的urls包含到這個項目中去 ,指明下一級如何匹配,然後再在應用的urls文件中正則匹配請求,如果請求成功,就執行應用vies中的某個函數去對應這個請求)
每次做請求地址的正則匹配的時候默認會找urls下的urlpatterns中的內容

str方法,其必需return一個字符串類型的數據,表示對對象的字符串描述一般在print輸出這個對象的時候會被調用

項目文件的介紹:init.py:表示項目文件可以當做一個包來使用
settints.py:表示項目的正體配置文件
urls.py:表示項目的URL配置未見,也可以理解爲請求的分發
wsgi.py:是項目與WSGI兼容的web服務器的入口
mange.py 項目運行的入口,指定了配置文件 命令管理工具?

應用下的文件介紹:
admin:後臺站點管理的註冊文件
init.py 表示這個應用可以當做一個包來使用
migeations: 用來做模型遷移,也就是創建表的 一般分爲兩步,第一步通過模型類生成創建表的語句,第二步遷移文件,也就是創建表
test.py:用來做測試
views.py:接受請求,邏輯處理,響應數據

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章