Python测试开发django1.简介
? ? ? ? Django是一種基于Python開發的開源的高級Web應用框架,使用Django,使你能夠以最小的代價構建和維護高質量的Web應用。Django 本身基于 MVC 模型,即 Model(模型)+ View(視圖)+ Controller(控制器)設計模式,MVC 模式使后續對程序的修改和擴展簡化,并且使程序某一部分的重復利用成為可能,Python 加 Django 是快速開發、設計、部署網站的最佳組合。
Django 框架的組成部分
Django 框架的核心包括:
一個 面向對象 的映射器,用作數據模型(以 Python 類的形式定義)和關系型數據庫間的介質;
一個基于正則表達式的 URL 分發器;
一個視圖系統,用于處理請求;
一個模板系統。
核心框架中還包括:
一個輕量級的、獨立的 Web 服務器,用于開發和測試。
一個表單序列化及驗證系統,用于 HTML 表單和適于數據庫存儲的數據之間的轉換。
一個緩存框架,并有幾種緩存方式可供選擇。
中間件支持,允許對請求處理的各個階段進行干涉。
內置的分發系統允許應用程序中的組件采用預定義的信號進行相互間的通信。
一個序列化系統,能夠生成或讀取采用 XML 或 JSON 表示的 Django 模型實例。
一個用于擴展模板引擎的能力的系統。
Django 包含了很多應用在它的 contrib 包中,這些包括:
一個可擴展的認證系統
動態站點管理頁面
一組產生 RSS 和 Atom 的工具
一個靈活的評論系統
產生 Google 站點地圖(Google Sitemaps)的工具
防止跨站請求偽造(cross-site request forgery)的工具
一套支持輕量級標記語言(Textile 和 Markdown)的模板庫
一套協助創建地理信息系統(GIS)的基礎框架
Django 的優點
完美的文檔,Django近乎完美的官方文檔。
完全免費并開源源代碼、快速高效開發、強大的可擴展性
強大的URL路由配置,Django讓你可以設計出非常優雅的URL。
自助管理后臺,讓你幾乎不用寫一行代碼就擁有一個完整的后臺管理界面。
全套的解決方案(full-stackframework + batteries included),基本要什么有什么(比如:cache、session、feed、orm、geo、auth),而且全部Django自己造,開發網站應手的工具Django基本都給你做好了,因此開發效率是不用說的。
Django 的缺點
Template功能比較弱,不能插入Python代碼,要寫復雜一點的邏輯需要另外用Python實現Tag或Filter。
URL配置雖然強大,但全部要手寫,高手和初識Django的人配出來的URL會有很大差異。
自帶的ORM遠不如SQLAlchemy強大,SQLAlchemy是Python世界里事實上的ORM標準,其它框架都支持SQLAlchemy了,唯獨Django仍然堅持自己的那一套。
Django的auth跟其它模塊結合緊密,功能也挺強,但做的有點過了,用戶的數據庫schema都給你定好了,比如很多網站要求email地址唯一,可schema里這個字段的值不是唯一的。
系統緊耦合,如果你覺得Django內置的某項功能不是很好,想用喜歡的第三方庫來代替是很難的,比如說的ORM、Template。要在Django里用SQLAlchemy或Mako幾乎是不可能,即使打了一些補丁用上了也會讓你覺得非常非常別扭。
MVC 模型
MVC 模式(Model–view–controller)是軟件工程中的一種軟件架構模式,把軟件系統分為三個基本部分:模型(Model)、視圖(View)和控制器(Controller)。
MVC 以一種插件式的、松耦合的方式連接在一起。
模型(M)- 編寫程序應有的功能,負責業務對象與數據庫的映射(ORM)。
視圖(V)- 圖形界面,負責與用戶的交互(頁面)。
控制器(C)- 負責轉發請求,對請求進行處理。
用戶操作流程圖:
MTV 模型
Django 的 MTV 模式本質上和 MVC 是一樣的,也是為了各組件間保持松耦合關系,只是定義上有些許不同,Django 的 MTV 分別是指:
M 表示模型(Model):編寫程序應有的功能,負責業務對象與數據庫的映射(ORM)。
T 表示模板 (Template):負責如何把頁面(html)展示給用戶。
V 表示視圖(View):負責業務邏輯,并在適當時候調用 Model和 Template。
除了以上三層之外,還需要一個 URL 分發器,它的作用是將一個個 URL 的頁面請求分發給不同的 View 處理,View 再調用相應的 Model 和 Template
用戶操作流程:
用戶通過瀏覽器向我們的服務器發起一個請求(request),這個請求會去訪問視圖函數:
a.如果不涉及到數據調用,那么這個時候視圖函數直接返回一個模板也就是一個網頁給用戶。
b.如果涉及到數據調用,那么視圖函數調用模型,模型去數據庫查找數據,然后逐級返回。
視圖函數把返回的數據填充到模板中空格中,最后返回網頁給用戶。
QQ群
掃碼加公號1
掃碼加公號2
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Python测试开发django1.简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机网络期末考长沙学院,校内用-第二套
- 下一篇: VGG网络结构(二)