1. 程式人生 > >Python自動化運維:Django基礎

Python自動化運維:Django基礎

python django

Django 框架
Django基於python語言寫的全棧一體式的開源web開發框架, 遵循MVC框架設計。 既然是遵循, 那麽肯定有自己的特點, 所以他對MVC進行精簡和演變後的框架名稱是 MTV。
Model(模型) -- Templates(模板) -- Views(視圖)

M -- Model -- 模型
類似MVC中的M功能, 註意負責和數據庫交互, 進行數據處理, 以及數據庫表的創建等。跟數據庫打交道的模塊
T -- Template -- 模板
類似MVC中的V功能相同, 負責封裝構造要返回的html。給用戶展示數據用的
V -- View -- 視圖
類似MVC中的C功能相同, 接收請求, 進行業務處理, 返回應答。流程控制用的

總結MTV

M 跟數據庫打交道的模塊 --- 我跟數據庫是好基友 -- 基友
T 給用戶展示數據用的 --- 我就是Django心靈的窗戶 -- 窗戶
V 流程控制用的 --- 此路是我開, 要想從這過, 留下買路財 -- 強盜

MTV本質

M 一個包含一大堆class類代碼的文件類, 那就是內部包含了一大推對象的屬性, 從這方面說就是數據庫表的結構設計
T 包含一大堆靜態語言組成的文件html、 js、 css等等, 就只這麽一大堆東西
V 包含一大堆函數代碼的文件函數, 是能處理某一功能的代碼

核心
MTV框架的核心是V
因為V是Django框架的流程控制, 幾乎說有的內容都需要跟他搞好關系, 所以他是MTV框架的核心

MTV項目的業務核心是M
因為項目的目的是給公司帶來效益的, 而效益重點是數據, 在MTV中和數據有關系的就是M。

Django 訪問流程
場景: 演員夢想快速賺錢, 入傳銷窩點忍受苦難, 民警幫助他回家。
某著名相聲表演藝術家(專註虛假廣告代言數十年), 因為想快速賺錢, 不小心進入了傳銷組織, 忍受了很多苦難,
終於逃離監視, 打110找公安部門去求救。
1. 向公安部門訴說基本情況, 請求警察幫助他回家
2. 公安部門通過戶籍管理部門, 到個人信息管理數據庫確認具體的個人信息
3. 公安部分確定一輛火車, 給他買一張票, 將他送到火車站。
分析:
藝術家的需求: 脫離傳銷, 回家
第1步: 根據需求, 打110找公安部門

第2步: 公安部門先確認他的信息
2.1 到戶籍管理部分確認信息
2.2 戶籍管理部門通過個人信息管理數據庫獲取並確認數據
2.3 公安部分確認個人信息
第3步: 給他找輛回家的車,
3.1 車站買票, 拿過來給藝術家
3.1 人通過車票, 上指定的車
第4步: 人車合一, 回家。

技術分享

1. 用戶發起網頁的web請求
舉例:http://127.0.0.1:8000/nihao/
請求中的ip(127.0.0.1)目的是到達指的的服務器地址
請求中的port(8000)目的是交由服務器中監控該端口的服務處理
後面的內容是需要服務處理的具體資源
2. 請求到達django的路由系統:
(1)匹配web請求中的資源關鍵字
(2)將匹配到的請求交給指的的視圖模塊函數去處理
3. 請求到達視圖模塊部分, 模塊主要有兩部分功能
(1)獲取數據
(2)獲取模板, 展示數據
4.如果views視圖接收的請求需要驗證/獲取數據,那麽調用models模型模塊
(1)models通過內置的orm功能去後端數據庫中獲取數據
(2)models將獲取到的數據, 返回給views視圖
5. views需要將獲取到的數據進行展示
(1)從模板模塊中獲取指定的模板文件
(2)根據模板文件中的變量名標簽, 將獲取到的數據填充到指定的位置
6. 形成一個完整的web頁面, 返回給客戶端
再次對照理解:
表演藝術家 -------------- 用戶
逃離傳銷回家的需求 ------ web請求
根據需求打110找公安部門 - django的路由系統
公安部門 ---------------- Views視圖模塊
戶籍管理部門 ------------ Models模型模塊
個人信息管理數據庫 ------ 數據庫
回家的火車 -------------- 模板
登火車的車票 ------------ 模板中的變量名標簽
人車一體 ---------------- 完整的web頁面

Django基本命令
1、下載Django:

pip3 install django

2、創建一個django project

django-admin.py startproject mysite

當前目錄下會生成mysite的工程,目錄結構如下:

manage.py   是項目管理文件, 通過它管理項目。
wangshusen  與項目同名的目錄, 存放項目的所有基礎文件。
_init_.py   是一個空文件, 作用是這個目錄test1可以被當作包使用。
settings.py 是項目的整體配置文件。
urls.py     是項目的URL配置文件。
wsgi.py     是項目與WSGI兼容的Web服務器入口

3、在mysite目錄下創建應用

python manage.py startap app1

4、啟動django項目

python manage.py runserver 8080


這樣我們的django就啟動起來了!當我們訪問:http://127.0.0.1:8080/時就可以看到:
5、同步更改數據庫表或字段

‘‘‘
    python manage.py syncdb
    註意:Django 1.7.1 及以上的版本需要用以下命令
    python manage.py makemigrations
    python manage.py migrate
‘‘‘

這種方法可以創建表,當你在models.py中新增了類時,運行它就可以自動在數據庫中創建表了,不用手動創建。
6、清空數據庫

python manage.py flush

此命令會詢問是 yes 還是 no, 選擇 yes 會把數據全部清空掉,只留下空表。
7、創建超級管理員

‘‘‘
    python manage.py createsuperuser
    # 按照提示輸入用戶名和對應的密碼就好了郵箱可以留空,用戶名和密碼必填
    # 修改 用戶密碼可以用:
    python manage.py changepassword username
‘‘‘

8、Django 項目環境終端

python manage.py shell

這個命令和 直接運行 python 進入 shell 的區別是:你可以在這個 shell 裏面調用當前項目的 models.py 中的 API,對於操作數據的測試非常方便。
9、Django 項目環境終端

ython manage.py dbshell

Django 會自動進入在settings.py中設置的數據庫,如果是 MySQL 或 postgreSQL,會要求輸入數據庫用戶密碼。
在這個終端可以執行數據庫的SQL語句。如果您對SQL比較熟悉,可能喜歡這種方式。
10、更多命令

python manage.py

查看所有的命令,忘記子名稱的時候特別有用。

本文出自 “炫維” 博客,請務必保留此出處http://xuanwei.blog.51cto.com/11489734/1978590

Python自動化運維:Django基礎