Django框架详解
生活随笔
收集整理的這篇文章主要介紹了
Django框架详解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、MVC框架
1、MVC框架核心思想:
分工和解耦
2、web MVC舉例:
以通過瀏覽器注冊用戶信息為例:
- M:Model,模型, 和數據庫進行交互。
- V:View,視圖, 產生html頁面。
- C:Controller,控制器, 接收請求,進行處理,與M和V進行交互,返回應答。
二、MVT框架
Django遵循MVT的思想
- M:Model,模型, 和MVC中M功能相同,和數據庫進行交互。
- V:View,視圖, 和MVC中C功能相同,接收請求,進行處理,與M和T進行交互,返回應答。
- T:Template,模板, 和MVC中V功能相同,產生html頁面。
三、創建Django項目:
命令:django-admin startproject 項目名
項目目錄如下:
- __init.py: 說明test1是一個python包。
- settings.py: 項目的配置文件。
- urls.py: 進行url路由的配置。
- wsgi.py: web服務器和Django交互的入口。
- manage.py: 項目的管理文件
四、創建應用
一個項目由很多個應用組成的,每一個應用完成一個功能模塊。
命令:python manage.py startapp 應用名
應用目錄如下:
- init.py: 說明目錄是一個Python模塊。
- models.py: 寫和數據庫項目的內容, 設計模型類。
- views.py: ,接收請求,進行處理,與M和T進行交互,返回應答。 定義處理函數,視圖函數。
- tests.py: 寫測試代碼的文件。
- admin.py: 網站后臺管理相關的文件。
五、應用注冊:
建立應用和項目之間的聯系,需要對應用進行注冊。修改settings.py中的INSTALLED_APPS配置項。
六、啟動項目:
運行開發web服務器命令:python manage.py runserver
七、模型類:
- O(objects):類和對象。
- R(Relation):關系,關系數據庫中的表格。
- M(Mapping):映射。
- django中內嵌了ORM框架,ORM框架可以將類和數據表進行對應起來,只需要通過類和對象就可以對數據表進行操作。
- 在Django中主要是設計類:模型類。
- ORM另外一個作用:根據設計的類生成數據庫中的表。
1、模型類設計
- 必須繼承與models.Model類。
- Models.ForeignKey可以建立兩個模型類之間一對多的關系,django在生成表的時候,就會在多端的表中創建一列作為外鍵,建立兩個表之間一對多的關系。
2、模型類生成表
(1)生成遷移文件:
- 命令:python manage.py makemigrations
- 遷移文件是根據模型類生成的
(2)執行遷移生成表 - 命令:python mange.py migrate
- 根據遷移文件生成表。
- 生成表名的默認格式:應用名_模型類名小寫
3、通過模型類操作數據庫表
- 導入模型類:
(1)from 應用名稱.models import 模型類名 - 向booktest_bookinfo表中插入一條數據。
(1)b = BookInfo() #定義一個BookInfo類的對象
(2)b.btitle =‘天龍八部’ #定義b對象的屬性并賦值
(3)b.bpub_date = date(1990,10,11)
(4)b.save() #才會將數據保存進數據庫 - 查詢出booktest_bookinfo表中id為1的數據。
(1)b = BookInfo.objects.get(id=1) - 在上一步的基礎上改變b對應圖書的出版日期。
(1)b.bpub_date = date(1989,10,21)
(2)b.save() #才會更新表格中的數據 - 緊接上一步,刪除b對應的圖書的數據。
(1)b.delete() #才會刪除 - 向booktest_heroInfo表中插入一條數據。
(1)h = HeroInfo()
(2)h.hname = ‘郭靖’
(3)h.hgender = False
(4)h.hcomment = ‘降龍十八掌’
(5)b2 = BookInfo.objects.get(id=2)
(6)h.hbook = b2 # 給關系屬性賦值,英雄對象所屬的圖書對象
(7)h.save() - 查詢圖書表里面的所有內容。
(1)BookInfo.objects.all()
(2)HeroInfo.objects.all()
4、關聯操作
- 查詢出id為2的圖書中所有英雄人物的信息。
b = BookInfo.objects.get(id=2)
b.heroinfo_set.all() #查詢出b圖書中所有英雄人物的信息
八、后臺管理:
1、本地化
- 語言和時區的本地化。
- 修改settings.py文件。
2、創建管理員
- 命令:python manage.py createsuperuser
3、注冊模型類
- 在應用下的admin.py中注冊模型類。
- 告訴djang框架根據注冊的模型類來生成對應表管理頁面。
- b = BookInfo()
4、自定義管理頁面
- 自定義模型管理類。模型管理類就是告訴django在生成的管理頁面上顯示哪些內容
九、視圖
在Django中,通過瀏覽器去請求一個頁面時,使用視圖函數來處理這個請求的,視圖函數處理之后,要給瀏覽器返回頁面內容。1、定義視圖函數
- 視圖函數定義在views.py中。
- 例:
- 視圖函數必須有一個參數request,進行處理之后,需要返回一個HttpResponse的類對象,hello
python就是返回給瀏覽器顯示的內容。
2、進行url配置
- url配置的目的是讓建立url和視圖函數的對應關系。url配置項定義在urlpatterns的列表中,每一個配置項都調用url函數。
- url函數有兩個參數,第一個參數是一個正則表達式,第二個是對應的處理動作。
- 配置url時,有兩種語法格式:
- (1)url(正則表達式,視圖函數名)
- (2)url(正則表達式,include(應用中的urls文件))
- 工作中在配置url時,首先在項目的urls.py文件中添加配置項時,并不寫具體的url和視圖函數之間的對應關系,而是包含具體應用的urls.py文件,在應用的urls.py文件中寫url和視圖函數的對應關系
3、url匹配過程
- 在項目的urls.py文件中包含具體應用的urls.py文件,應用的urls.py文件中寫url和視圖函數的對應關系。
- 當用戶輸入如http://127.0.0.1:8000/aindex時,去除域名和最前面的/,剩下aindex,拿aindex字符串到項目的urls文件中進行匹配,配置成功之后,去除匹配的a字符,那剩下的index字符串繼續到應用的urls文件中進行正則匹配,匹配成功之后執行視圖函數index,index視圖函數返回內容hello
python給瀏覽器來顯示。
十、模板
1、模板文件的使用
- 創建模板文件夾
- 配置模板目錄
使用模板文件: - (1)加載模板文件
- 去模板目錄下面獲取html文件的內容,得到一個模板對象。
- (2)定義模板上下文
- 向模板文件傳遞數據。
- (3)模板渲染
- 得到一個標準的html內容。
給模板文件傳遞數據:
-
模板變量使用:{{ 模板變量名 }}
-
模板代碼段:{%代碼段%}
-
for循環
總結
以上是生活随笔為你收集整理的Django框架详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 移动web开发(一)——移动web开发必
- 下一篇: @action 注解