国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python設計模式之MVC模式簡單示例

2020-02-16 11:32:34
字體:
來源:轉載
供稿:網友

本文實例講述了Python設計模式之MVC模式。分享給大家供大家參考,具體如下:

一.簡單介紹

mvc模式  the  model-view-controller pattern

mvc模式是一個運用在軟件工程中的設計模式。mvc模式脫離了以前簡單的web服務設計邏輯,將開發,測試和維護分離。在MVC模式中,應用被分解為相互作用的模塊,模型,視圖,控制。目的在于分離輸入(control),處理邏輯(model),輸出格式(view)。

簡單的理解:

1. 控制模塊用于獲取用戶輸入,并將模型與視圖建立聯系
2. 模型主要是從存儲區獲取數據
3. 視圖用于展示給用戶,從模型獲取的數據

具體細節:

控制模塊:可以被看作是一個介于用戶,處理(model),顯示(view)之間的中間人。它是用戶請求的入口,也是應用處理的入口??刂颇K接受用戶輸入,解析,決定哪一個model和view參與處理,因此,它決定了針對用戶請求,選擇何種view和model。

模型模塊:處理業務的應用程序,model操作數據庫,比如插入,更新,刪除。每個模型會提供固定類型的數據給控制模塊,另一方面,控制模塊可以調用模型的不同方法處理數據,并將處理后的結果返回給視圖模型

視圖模塊:主要用來顯示,通過控制模塊獲取模型模塊處理后的數據,并進行格式化的顯示。通過控制模塊選擇view并顯示反饋給用戶。view模型的選擇是基于模型模塊的l選擇和用戶配置等等。

二.簡單的例子

測試管理系統用來查詢錯誤列表

情景描述:

如果用戶查詢一個特定的錯誤,測試管理系統以某種格式顯示這個錯誤的描述
如果用戶搜索相關錯誤的關鍵值,測試管理系統顯示所有相關的錯誤列表

創建SQLite 數據庫,庫名TMS,并創建一個表

ID Component Summary
1 XYZ File doesn't get deleted
2 XYZ Registry doesn't get created
3 ABC Wrong title gets displayed

代碼如下:

#mvc.pyimport sqlite4import typesclass DefectModel:  def getDefectList(self, component):    query = "select ID from defects where Component= '%s' " % component    defectlist = self._dbselect(query)    list = []    for row in defectlist:      list.append(row[0])    return list  def getSummary(self, id):    query = "select summary from defects where ID='%d'" % id    summary = self._dbselect(query)    for row in summary:      return row[0]  def _dbselect(self, query):    connection = sqlite3.connect('TMS')    cursorObj = connection.cursor()    results = cursorObj.execute(query)    connection.commit()    cursorObj.close()    return resultsclass DefectView:  def summary(self, summary, defectid):    print "#### Defect Summary for defect# %d####%s/n" %(defectid, summary)  def defectList(self, list, category):    print "#### Defect List for %s ####/n" % category    for defect in list:      print defectclass Controller:  def __init__(self):    pass  def getDefectSummary(self, defectid):    model = DefectModel()    view = DefectView()    summary_data = model.getSummary(defectid)    return view.summary(summary_data, defectid)  def getDefectList(self, component):    model = DefectModel()    view = DefectView()    defectlist_data = model.getDefectList(component)    return view.defectList(defectlist_data, component)            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 顺义区| 汶上县| 和平区| 乐东| 保德县| 湘阴县| 嘉禾县| 砀山县| 呈贡县| 华蓥市| 连城县| 循化| 沐川县| 盐城市| 安乡县| 安丘市| 长岭县| 洛浦县| 宜昌市| 宁都县| 鹤峰县| 东丰县| 乌鲁木齐县| 谷城县| 镇原县| 忻城县| 永丰县| 河源市| 西藏| 玉环县| 达尔| 乳山市| 江都市| 建水县| 镇平县| 庆阳市| 龙口市| 库伦旗| 阿巴嘎旗| 邳州市| 泰州市|