999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

淺析Web開發工具Django的MVC架構

2021-11-25 10:58:09孫建軍,李琪,呂強
品牌與標準化 2021年6期

孫建軍,李琪,呂強

【摘要】 本文深入淺出地分析了網站制作工具Django的MVC架構思想,并結合示例進行了說明,對進一步深入理解并運用dango解決實際問題提供了借鑒和幫助。

【關鍵詞】 Django;MVC;架構

【DOI編碼】 10.3969/j.issn.1674-4977.2021.06.039

Analysis on the MVC Architecture of Web Development Tool Django

SUN Jian-jun,LI Qi,LV Qiang

(Shaanxi Institute of Standardization,Xi-an 710000,China)

Abstract: This article analyzes the MVC architecture ideas of Django,a website production tool,in a simple and simple way,and explains it with examples,which provides reference and help for further understanding and using dango to solve practical problems.

Key words: Django;MVC;architecture

Django是一個基于Python語言的WEB開發工具,2005年作為一個開源項目發布。目前,世界上許多的公司和組織已經將Django應用在自己開發的項目中。

Django運行在服務器端主要用于Web網站的制作。其開發框架由數據、呈現、控制三部分構成,被稱為MVC架構。這種架構的優點在于,可在其數據、呈現、控制部分分別進行獨立開發、維護,使得系統的靈活性、協調性顯著增強。

1 MVC架構

MVC是Model-View-Controller的縮寫,Model表示模型,View稱為呈現方式,Controller是控制器。三者共同構成了一個既彼此獨立又相互協同的有機整體,這就是通常所說的MVC架構。在MVC架構下,操作是在View上進行,其響應就會被傳送給Controller,而Controller根據業務邏輯去操作Model的數據,而最終數據的變化會反映到View。

圖1 Django的MVC架構圖

圖1中通過模型M,Django可以對數據庫進行操作,需要在模型中按照Django的方式定義能夠反映數據庫中表結構的類來完成,類屬性對應于數據庫中表的字段。便于實現類與表的關聯。Django開發的通用且簡單的數據庫接口,可以方便地配置并連接諸如Mysql、Oracle等多種數據庫系統。Django提供了數據查詢、修改、刪除等一系列常用功能,實現對數據庫的操作。

控制邏輯C是Python系列函數。是Django的處理和控制核心。瀏覽器上顯示的動態頁面,需要在后臺也即服務器端通過大量的控制和數據處理工作來完成,基于Python語言的Django,具有實現復雜邏輯控制和強大的數據處理能力。

在看呈現方式V,瀏覽器上能夠解釋的是標準的Html靜態文本文件,但能夠體現動態特征的Html文件,需要在服務器端進行處理。Django以Html(不限于)為基礎并進行了擴充,增加了變量替換和邏輯控制等功能,實現了頁面的動態化,頁面最終由Django渲染后,形成標準的Html文本,交由瀏覽器解釋,實現了動態頁面的顯示。

整個框架工作流程是,從客戶端的瀏覽器上發出頁面請求,服務器端接收到請求,交由控制器C,C使用在M中定義并獲取的數據進行處理,利用V中定義的模板文件(以Html為基礎的文本文件),生成標準的Html文件后,傳送至客戶端的瀏覽器上進行顯示。

Django在服務器端構建了3個重要模塊,它們均為Python模塊,這些模塊分別對應了架構中的MVC。Models.py模塊用一個Python類來描述數據表,并實現與數據庫系統的連接,對應于MVC中的M;Views.py模塊包含了頁面的業務和控制邏輯,在Django中又稱為視圖,對應于MVC中的C;Template模板系統,包含了基于HTML格式的文本文件,經渲染后,在客戶端瀏覽器上顯示頁面,對應于MVC中的V。

2 示例

1)配置數據庫

Django可以配置并連接多種數據庫系統,數據庫名在配置數據庫系統時指定。以下在M(模型)中定義一個公司類,類名為company。

From django db import models

Class company(models.Model):

Name=models.CharField(max_length=30)

address=models.CharField(max_length=50)

city=models.CharField(max_length=60)

province=models.CharField(max_length=30)

從django.db中導出模型models,使用models中字符串類型定義類的各屬性。在與配置的數據庫同步后,Django將定義的類轉化為一個數據庫下的表。以下用類的objects.create方法為表創建一條記錄,并保存至數據庫中。

p=company.objects.create(name='某公司',address='某街某號',city='某市',province='某省或自治區')

2)定義模板文件

在V(模板)中定義一個文件,稱為模板文件,取名ep.html。

示例

公司名稱:{{name}}

公司地址:{{address}}

所在城市:{{city}}

所在省或自治區:{{province}}

{{ }}是Django的占位符,占位符內是變量名,變量經賦值后,替代占位符。

3)編制控制流程

定義一個Python函數:取名example.作為C(控制器)中的方法。

from django.template.loader import get_template

from django.template import Context

from django.http import HttpResponse

Def example(request):

t=get_temlate(ep)

c=context({'name':p.name,'address':p.address,'city':p.city,'province':p.province})

html=t.render(c)

return httpResponse(html)

其中,get_temlate()是Django的函數,從django.template.loader程序包中導出,作用是將模板文件轉化為模板對象。

t=get_temlate(ep)

將已定義的ep模板文件作為參數傳入,生成模板對象t。Context()函數從django.template程序包導出,生成上下文對象。

c=context({'name':p.name,'address':p.address,'city':p.city,'province':p.province})

定義一個python字典,為變量賦值,并將字典作為context()函數的參數,生成上下文對象c。

html=t.render(c)

調用模板對象t的方法render(),以上下文對象作為參數,對模板文件ep進行渲染,實際上是用字典中定義的各項去替換文檔中的占位符并給變量賦值。渲染后的文件為標準的Html文件。

示例

公司名稱:某公司

公司地址:某街某號

所在城市:某市

所在省或自治區:某省或自治區}

最后將該文本用httpResponse()返回給瀏覽器,將會在頁面上看到以下信息:

公司名稱:某公司;公司地址:某街某號;所在城市:某市;所在省或自治區:某省或自治區。

3 結語

MVC是當今Web領域網站制作類工具最為流行和廣泛使用的開發架構。以上示例較為具體地說明在架構下的開發和工作過程,這對進一步深入理解并運用django解決實際問題提供了借鑒和幫助。

【作者簡介】,

孫建軍,男,高級工程師,研究方向為信息化應用。

李琪,男,工程師,碩士,研究方向為網絡與信息安全。

呂強,男,高級工程師,碩士,研究方向為統一社會信用代碼及電子政務信息化。

主站蜘蛛池模板: 狠狠色噜噜狠狠狠狠色综合久| 亚洲无码高清视频在线观看| 无码在线激情片| 久久精品波多野结衣| 91成人精品视频| 中文字幕首页系列人妻| 最新国产在线| 免费Aⅴ片在线观看蜜芽Tⅴ | 日韩精品无码免费一区二区三区| 国产超碰一区二区三区| 国产AV无码专区亚洲A∨毛片| 亚洲精品天堂自在久久77| 中文字幕在线日本| 99免费在线观看视频| 狠狠综合久久久久综| 日韩av手机在线| 亚洲男人的天堂网| 五月天丁香婷婷综合久久| 亚洲天堂啪啪| 国产97视频在线观看| 亚洲三级a| 亚洲成人网在线观看| 全部免费特黄特色大片视频| 国产成人无码Av在线播放无广告| 日韩中文字幕免费在线观看 | 亚洲AⅤ永久无码精品毛片| 亚洲欧美不卡中文字幕| 无码免费的亚洲视频| 美女毛片在线| 国产香蕉在线视频| 伊人久久综在合线亚洲91| 国产亚洲男人的天堂在线观看| 日本三区视频| 尤物特级无码毛片免费| 欧美高清国产| 国产产在线精品亚洲aavv| 亚洲成A人V欧美综合天堂| 国产美女在线免费观看| 高h视频在线| 91成人免费观看| 美美女高清毛片视频免费观看| 久久人体视频| 日本AⅤ精品一区二区三区日| 亚洲福利一区二区三区| 高清国产在线| 亚洲欧美另类视频| 午夜国产精品视频黄| 日韩欧美国产成人| 国产成人高精品免费视频| 91探花在线观看国产最新| 欧美亚洲国产精品第一页| 欧美色视频在线| 男女男精品视频| 久久精品国产免费观看频道| 欧美日韩国产精品综合| 在线欧美日韩| 一级成人欧美一区在线观看| 人妻无码AⅤ中文字| 亚洲天堂视频在线免费观看| 噜噜噜综合亚洲| 91精品啪在线观看国产| 久久免费成人| 欧美一区二区三区不卡免费| 午夜国产不卡在线观看视频| 国产在线自在拍91精品黑人| 99re经典视频在线| 99久久99这里只有免费的精品| 蜜桃视频一区二区| 国产综合网站| 亚洲成人动漫在线| 久久亚洲AⅤ无码精品午夜麻豆| 欧美 亚洲 日韩 国产| 99人妻碰碰碰久久久久禁片| 日韩在线视频网站| 熟女视频91| 无码福利视频| 欧美区国产区| 久久精品国产精品青草app| 亚洲床戏一区| 伊人色天堂| 久久精品人人做人人爽| 国产小视频网站|