日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Django框架详解

發布時間:2023/12/9 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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中。
  • 例:
def index(request):#進行處理。。。return HttpResponse('hello python')
  • 視圖函數必須有一個參數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循環

{% for i in list %}list不為空時執行的邏輯 {% empty %}list為空時執行的邏輯 {% endfor %}

總結

以上是生活随笔為你收集整理的Django框架详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。