亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時間:2018年01月10日 10:38:51   作者:李自泰  
這篇文章主要介紹了Python設計模式之MVC模式,簡單介紹了MVC模式的概念、原理,并結合實例形式給出了Python實現與使用MVC模式的相關操作技巧,需要的朋友可以參考下

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

一.簡單介紹

mvc模式  the  model-view-controller pattern

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

簡單的理解:

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

具體細節(jié):

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

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

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

二.簡單的例子

測試管理系統(tǒng)用來查詢錯誤列表

情景描述:

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

創(chuàng)建SQLite 數據庫,庫名TMS,并創(chuàng)建一個表

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

代碼如下:

#mvc.py
import sqlite4
import types
class 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 results
class 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 defect
class 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)

使用模塊:

import mvc
controller = mvc.Controller()
print controller.getDefectSummary(2)
print controller.getDefectList('ABC')

總結:通過此mvc設計方法,看到了解耦的好處,個個模塊獨立,相互不影響,也可以增加模塊。方便組合,方便拆卸。好好體會吧!

更多關于Python相關內容可查看本站專題:《Python數據結構與算法教程》、《Python Socket編程技巧總結》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》及《Python入門與進階經典教程

希望本文所述對大家Python程序設計有所幫助。

相關文章

  • PyTorch模型保存與加載實例詳解

    PyTorch模型保存與加載實例詳解

    大家都知道pytorch的模型和參數是分開的,可以分別保存或加載模型和參數,這篇文章主要給大家介紹了關于PyTorch模型保存與加載的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-04-04
  • Python腳本實現抓取指定網站上的所有圖片

    Python腳本實現抓取指定網站上的所有圖片

    對于開發(fā)者、數據分析師以及研究人員而言,從網頁中提取有價值的信息是一項至關重要的技能,本文將詳細介紹如何使用Python編寫一個腳本來自動抓取指定網站上的所有圖片,需要的可以參考下
    2024-10-10
  • 使用python創(chuàng)建極坐標平面的示例代碼

    使用python創(chuàng)建極坐標平面的示例代碼

    PolarPlane 是 Manim(一個用于數學動畫的Python庫)中的一個類,用于創(chuàng)建極坐標平面,與笛卡爾坐標系不同,極坐標系是基于角度和半徑來定位點的,本文就給大家介紹如何用python創(chuàng)建極坐標平面,需要的朋友可以參考下
    2024-08-08
  • Python 語言實現六大查找算法

    Python 語言實現六大查找算法

    本文給大家分享Python 語言實現六大查找算法,針對每種算法通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-06-06
  • python實現簡易聊天對話框

    python實現簡易聊天對話框

    這篇文章主要為大家詳細介紹了python實現簡易聊天對話框,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Python?PyWebIO開發(fā)Web應用實例探究

    Python?PyWebIO開發(fā)Web應用實例探究

    這篇文章主要為大家介紹了Python?PyWebIO開發(fā)Web應用實例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • 在Python中使用Neo4j數據庫的教程

    在Python中使用Neo4j數據庫的教程

    這篇文章主要介紹了在Python中使用Neo4j數據庫的教程,Neo4j是一個具有一定人氣的非關系型的數據庫,需要的朋友可以參考下
    2015-04-04
  • Python實現刪除Android工程中的冗余字符串

    Python實現刪除Android工程中的冗余字符串

    這篇文章主要介紹了Python實現刪除Android工程中的冗余字符串,本文實現的是刪除Android資源(語言)國際化機制中的一些冗余字符串,需要的朋友可以參考下
    2015-01-01
  • Python操作MySQL模擬銀行轉賬

    Python操作MySQL模擬銀行轉賬

    這篇文章主要為大家詳細介紹了Python操作MySQL模擬銀行轉賬,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 深入探索Django中間件的應用場景

    深入探索Django中間件的應用場景

    Django中間件是一種可插拔的應用程序組件,可在請求和響應處理過程中修改Django的行為。中間件可用于處理請求、響應、異常等,還可用于實現身份驗證、緩存、性能監(jiān)控等常用功能。通過深入探索中間件的應用場景,可以提高Django應用程序的可擴展性和靈活性
    2023-05-05

最新評論