「我」爲何須要學習Django呢?html
自動化運維簡單來看,就是用戶在前臺頁面輸入關鍵信息,後臺自動生成所須要的東西或者實現某個需求。最終目標是經過機器去「修理」機器,學習自動化運維到了必定的階段實際上是跟AI離不開的。如今不少的自動化運維基本上都停留在半自動化,等須要真正自動化運維的時候,系統將會愈來愈複雜,python
那良好的交互對於避免複雜是很是重要的。使用Django架站是一個不錯的選擇,等咱們學習Django以後,再修行ansible等自動化軟件,會有意外的驚喜喔!sql
下面我開始結合本身的學習筆記,跟你們分享Django架構的知識吧。(若有錯誤,請各位老鐵指出!)
數據庫
02django
Django架構介紹後端
Django架站有兩種架構,一是MVC架構,而是MTV架構。Django的MTV模式本質上與MVC模式沒有什麼差異,也是各組件之間爲了保持鬆耦合關係,只是定義上有些許不一樣.架構
Django MVC架構app
Model(模型)框架
包含系統中的數據內容,一般以數據庫的形式來存儲,若是數據有變更,則通知View實時改變現實的內容,還有一些處理數據的程序邏輯也在這裏。運維
View(視圖)
建立和用戶之間的界面,把用戶的請求傳給Controller,把按照Controller的要求把來自Model的數據顯示出來。
Controller(控制器)
接受外部用戶的操做,根據操做訪問模型獲取數據,並調用「視圖」顯示這些數據。控制器是將「模型」和「視圖」隔離,併成爲兩者之間的聯繫紐帶。
MVC是衆所周知的模式,即:將應用程序分解成三個組成部分:model(模型),view(視圖),和 controller(控制 器)。
Django MTV架構
Model(模型)
即數據存取層。 該層處理與數據相關的全部事務: 如何存取、如何驗證有效性、包含哪些行爲以及數據之間的關係等。
Template(模板)
即表現層。 該層處理與表現相關的決定: 如何在頁面或其餘類型文檔中進行顯示。
View(視圖)
即業務邏輯層。 該層包含存取模型及調取恰當模板的相關邏輯。 你能夠把它看做模型與模板之間的橋樑。
Django還有一個url分發器,它的做用是將一個個URL的頁面請求分發給不一樣的view處理,view再調用相應的Model和Template
03
Django特性
採用ORM方式存取數據庫的數據,數據庫抽象化,網站設計基本不須要使用SQL查詢語言。
往後如需更換數據庫,無須修改大量程序代碼。
用過MVC架構概念把視圖和控制邏輯分開,開發人員不用擔憂網站通訊協議的瑣碎細節,而是專心於創建網站的功能。
Python語言處理和運算、操做數據庫,讓網頁請求更加客戶化,實時響應。
ORM框架
Django採用ORM方式存取數據庫的數據。Python程序中不使用SQL指令存取數據,而是以ORM方式存取數據庫的數據。 ORM(Object relational Mapper/Mapping),它是以重面向對象的程序設計技術映射後端數據庫。即對數據庫的操做方式抽象化爲統一用Python的數據操做方式,解決底層數據庫兼容性的問題。再簡單點說,只管Python的數據操做方式,不須要管底層數據庫是Oracle/Mysql/Redis等。
04
在Django MTV架構下的網站開發步驟
需求分析不可少。
數據庫設計。
瞭解網站的每個頁面,並設計網頁模板(.html)文件。
使用virtualenv建立並啓用虛擬機環境。
使用pip install 安裝django。
使用django-admin startproject 生成項目。
使用python manage.py startapp 建立app。
建立templates文件夾,並把全部網頁模板(.html)文件都放在此文件夾中。
建立static文件夾,並把全部靜態文件(圖像文件、CSS文件及.js等)都放在此文件夾中。
修改settings.py,把相關的文件夾加入,也把生成的app名稱加入INSTALLED_APPS序列中。
編輯models.py,建立數據庫表格。
編輯views.py,先import在models.py中建立的數據模型。
編輯admin.py,把models.py中定義的數據模型加入,並使用admin.site.register註冊新增的類,讓admin界面能夠處理數據庫內容。
編輯urls.py,先import在views.py中定義的模塊。
編輯urls.py,建立網站和views.py中定義的模塊的對應關係。
執行python manage.py makemigrations。
執行python manage.py migrate。
執行python manage.py runserver測試網站。