<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      wjx-2005-07-01  

      Django

      一、MTV和MVC的區別

      首先介紹Django的設計模式,也就是MTV,在這之前我們先了解MVC模式。

      1、MVC設計模式

      MVC是Model-View-Controller的縮寫

      • Model代表數據存儲層,是對數據表的定義和對數據的增刪改查;
      • View代表視圖層,是系統前段顯示部分,它負責顯示什么和如何進行顯示;
      • Controller代表控制層,負責根據從View層輸入的指令來檢索Model層的數據,并在該層編寫代碼產生結果并輸出。

      MVC設計模式的請求與響應過程描述如下:

      • 用戶通過瀏覽器向服務器發起request請求,Controller層接受請求后,同時向Model層和View層發送指令;
      • Model層根據指令與數據庫交互并選擇相應業務數據,然后將數據發送給Controller層;
      • View層接收到Controller的指令后,加載用戶請求的頁面,并將此頁面發送給Controller層
      • Controller層接收到Model層和View層的數據后,將它們組織成響應格式發送給瀏覽器,瀏覽器通過解析后把頁面展示出來

      MVC的3層之間緊密相連,但又相互獨立,每一層的修改都不會影響其他層,每一層都提供了各自獨立的接口供其他層調用,MVC的設計模式降低了代碼之間的關聯性,增加了模塊的可重用性,這就是MVC的設計模式。

      2、MTV設計模式

      • Model:數據存儲層,處理所有數據相關的業務,和數據庫進行交互,并提供數據的增刪改查;
      • Template:模版層具體來處理頁面的顯示;
      • View:業務邏輯層,處理具體的業務邏輯,它的作用是連通Model層和Template。

      MTV設計模式的請求與響應過程的描述:

      • 用戶通過瀏覽器對服務器發起request請求,服務器接收請求后,通過View的業務邏輯層進行分析,同時向Model層和Template層發送指令;
      • Model層與數據庫進行交互,將數據返回給View層;
      • Template層接收到指令后,調用相應的模版,并返回給View層;
      • View層接收到模版與數據后,首先對模版進行渲染(即將相應的數據賦值給模版),然后組織成響應格式返回給瀏覽器,瀏覽器進行解析后最終呈現給用戶。

      二、Django模塊講解

      1、ORM

      ORM即對象關系映射,它是一種基于關系型數據庫的程序技術。ORM允許使用類和對象對數據庫進行操作。

      Web開發中對數據庫的操作是必不可少的,然而每種數據庫的操作方式以及用法不盡相同。由于Django中ORM的存在,為我們操作不同種類的數據庫提供了統一的方法,ORM適配了多種常用的關系型數據庫。

      ORM把類映射成數據庫中的表,把類的一個實例對象映射成數據庫中的數據行,把類的屬性映射成表中的字段,通過對象的操作對應到數據庫表的操作,實現了對象到SQL、SQL到對象轉換過程。

      Django把表模型定義為Model,他需要繼承自django.db.models中的Model類,只要與數據表相關的操作,都需要繼承這個類,同時ORM對于數據庫的增刪改查,也提供了一些簡單的API,例如F查詢等

      2、Django中定義數據表

      在創建好APP后

      1、模型類

      模型類本質上屬于一個python類,只不過在Django中稱之為模型類,它是由 django.db.models.Model 派生出來的子類,在Django中模型類是數據交互的接口,一個模型類代表數據庫中的一張數據表,模型類中每一個類屬性都代表數據表中的一個字段。

      2、定義數據表

      from django.db import models
      
      class User(models.Model):
          username = models.CharField(max_length=20)
          password = models.IntegerField()
          email = models.EmailField()
      

      通過上述代碼,一張用戶數據表就創建完成了。

      1、使用django包導入models模塊;

      2、使用class關鍵字對User表進行類定義,并繼承models模塊中的Models類;

      3、上述數據表定義了用戶姓名、密碼和郵箱三種屬性

      3、ORM管理器對象

      首先,大家需要知道每個繼承 models.Model 的模型類,都會有一個objects對象被同時繼承下來。這個對象就叫作“管理器對象”,數據庫的增刪改查可以用objects管理器對象來實現。

      ①:create插入數據

      User.objects.create(username="Tom",password="root",email="wjx9669@qq.com")
      

      ②:創建實例對象,然后調用save()方法保存

      Obj=User(username="Tom",password="root",email="wjx9669@qq.com")
      Obj.name='Harry'
      Obj.save()
      

      對數據進行增刪改查操作:

      User.objects,all()#查詢表中的所有記錄
      User.objects.filter(username_contains="T")#查詢表中name含有“T”的所有記錄
      User.objects.get(username="Tom")#有且只有一個查詢結果
      User.objects.get(username="Tom").delete()#刪除名字為Tom的記錄
      User.objects.get(username="Tom").update(username="Harry")#更新數據表的用戶名為Harry
      

      2、auth模塊

      3、Django Admin后臺管理系統

      4、Django視圖函數

      ? 在Django中,視圖函數是一個python函數或者類,開發者主要通過編寫視圖函數來實現業務邏輯。視圖函數首先接受來自瀏覽器或者客戶端請求,并最終返回響應,視圖函數返回的響應可以是HTML文件,也可以是HTTP協議中的303重定向。

      from django.http import HttpResponse
      def dgango(request):
          return HttpResponse('人生苦短,我學python!')
      

      1)HttpResponse視圖響應類型

      它是一種視圖的響應類型。

      2)視圖函數參數request

      Django規定,視圖函數至少有一個參數,第一個參數必須是request,request是HttpResponse請求類型的對象,它攜帶了瀏覽器的請求信息,所以視圖函數的第一個參數必須為request。

      3)return視圖響應

      視圖函數要返回響應內容,它被作為HttpResponse的對象返回給瀏覽器。

      5、Django 模版系統

      在 Django中我們把“模版”稱之為Template,它的存在使得HTML和View視圖層實現了解耦。當創建好一個Django項目后,會在項目的同級目錄下創建一個template文件夾,對它進行簡單的配置后,這個文件夾被Django自動識別。一般,我們會在Template文件夾里寫HTML代碼,用來作為響應內容。

      1)模版傳參

      在HTML代碼中可以使用變量并且可以進行傳參,視圖函數必須把數據形成字典的形式才可以傳遞給模版。

      2)render方法

      render是view層加載模版的一種方式,它封裝在django.shortcuts模塊中,render方法使用起來非常方便,它首先加載模版,然后將加載完成的模版響應給瀏覽器。

      三、系統講解

      1、Django路由系統應用

      Django中利用ROOT_URLCONF構建了URL與視圖函數的映射關系。在django.conf.urls中封裝了路由模塊,新建的Django項目中提供了urls.py路由配置文件,urls.py文件中定義了一個urlpatterns的列表,它是由url()實例對象組成的列表。

      2、Django 中間件

      中間件作為一個可插拔的組件對外提供服務,每個中間件都負責完成一些特定的功能。

      中間件是介于request與response之間的一道處理過程,相對比較輕量級。

      3、Django Cache緩存系統

      緩存是指保存一些計算開銷較大的數據,可以是某個網頁,也可以是網頁的一部分,或者僅僅只是格式化的數據,合理運用緩存技術可以減少數據庫訪問次數。

      posted on 2024-02-06 19:33  星辰與Python  閱讀(46)  評論(0)    收藏  舉報
       
      主站蜘蛛池模板: 亚洲人成网站在线无码| 夜爽8888视频在线观看| 在线无码av一区二区三区| 性一交一乱一乱一视频| 精品国产91久久粉嫩懂色| 亚洲国产综合自在线另类| 中文字幕久久精品波多野结| 中文字幕乱码中文乱码毛片| 久久综合九色综合97婷婷| 中国女人内谢69xxxx| 亚洲久悠悠色悠在线播放| 国产精品三级中文字幕| 中文字幕精品无码一区二区| 亚洲一线二线三线品牌精华液久久久| 色综合色综合久久综合频道| 亚洲欧美成人久久综合中文网| 国产国语一级毛片| 免费日韩av网在线观看| 东乡| 长垣县| 狠狠人妻久久久久久综合蜜桃 | 国产欧美日韩精品第二区| 久久91精品牛牛| 日韩精品一区二区亚洲av| 国产精品毛片一区二区| 欧美人禽zozo动人物杂交| 日韩精品一区二区三区在线观看 | 国产日韩av二区三区| 在线视频不卡在线亚洲| Y111111国产精品久久久| 日韩美女视频一区二区三区| 成 人色 网 站 欧美大片在线观看| 色爱区综合激情五月激情| 国产精品视频一区不卡| 久久久婷婷成人综合激情| 国产超碰无码最新上传| 亚洲AV永久无码天堂网一线| 久久亚洲精品情侣| 亚洲av天堂天天天堂色| 日本人妻巨大乳挤奶水免费| 一日本道伊人久久综合影|