一.MVC和MVT框架
①MVC:
MVC的全拼為Model-View-Controller。是一種軟件設(shè)計模式,是為了將傳統(tǒng)的輸入(input)衅檀、處理(processing)灌闺、輸出(output)任務運用到圖形化用戶交互模型中而設(shè)計的。現(xiàn)在雖然不再使用原來的分工方式抚官,但是這種分工的思想被沿用下來,廣泛應用于軟件工程中阶捆,是一種典型并且應用廣泛的軟件架構(gòu)模式凌节。后來,MVC的思想被應用在了Web開發(fā)方面洒试,被稱為Web MVC框架倍奢。
MVC框架的核心思想是:解耦,讓不同的代碼塊之間降低耦合垒棋,增強代碼的可擴展性和可移植性卒煞,實現(xiàn)向后兼容。
當前主流的開發(fā)語言如Java、PHP、Python中都有MVC框架柜候。
1.M全拼為Model浅妆,主要封裝對數(shù)據(jù)庫層的訪問,對數(shù)據(jù)庫中的數(shù)據(jù)進行增、刪、改、查操作贴届。
2.V全拼為View,用于封裝結(jié)果蜡吧,生成頁面展示的html內(nèi)容毫蚓。
3.C全拼為Controller,用于接收請求昔善,處理業(yè)務邏輯元潘,與Model和View交互,返回結(jié)果君仆。
②MVT:
1.M全拼為Model翩概,與MVC中的M功能相同牲距,負責和數(shù)據(jù)庫交互,進行數(shù)據(jù)處理钥庇。
2.V全拼為View牍鞠,與MVC中的C功能相同,接收請求评姨,進行業(yè)務處理难述,返回應答。
3.T全拼為Template吐句,與MVC中的V功能相同胁后,負責封裝構(gòu)造要返回的html。
(差異就在于黑線黑箭頭標識出來的部分)
ORM框架
①ORM的含義:
O是object嗦枢,也就類對象的意思攀芯,R是relation,翻譯成中文是關(guān)系文虏,也就是關(guān)系數(shù)據(jù)庫中數(shù)據(jù)表的意思侣诺,M是mapping,是映射的意思氧秘。在ORM框架中年鸳,它幫我們把類和數(shù)據(jù)表進行了一個映射,可以讓我們通過類和類對象就能操作它所對應的表格中的數(shù)據(jù)敏储。ORM框架還有一個功能,它可以根據(jù)我們設(shè)計的類自動幫我們生成數(shù)據(jù)庫中的表格朋鞍,省去了我們自己建表的過程已添。
django中內(nèi)嵌了ORM框架,不需要直接面向數(shù)據(jù)庫編程滥酥,而是定義模型類更舞,通過模型類和對象完成數(shù)據(jù)表的增刪改查操作。
②使用django進行數(shù)據(jù)庫開發(fā)的步驟:
1.在models.py中定義模型類
2.遷移
3.通過類和對象完成數(shù)據(jù)增刪改查操作
Django進行開發(fā)的整個流程再次詳細說明以達到鞏固的目的
1.配置環(huán)境
pip install virtualenv
(virtualenv是一個虛擬環(huán)境坎吻,目的在于將不同的項目之間隔離開來缆蝉,以達到不同的項目使用他們適合的python版本)
pip install virtualenvwrapper-win
(virtualenvwrapper也是一個虛擬環(huán)境,他相較于virtualenv的優(yōu)點是瘦真,virtualenv需要記住每一個虛擬環(huán)境所在的目錄刊头,在使用時需要尋找,而virtualenvwrapper可以將所有的虛擬環(huán)境到放到一個目錄下統(tǒng)一管理诸尽,這樣的話就不需要記住每一個虛擬環(huán)境所在的目錄了)
mkvirtualenv -p python3 py_django
(創(chuàng)建一個python3的虛擬環(huán)境原杂,前提是電腦里面有python3,虛擬環(huán)境的名稱是py_django)
注意:創(chuàng)建的目錄為系統(tǒng)盤\用戶\電腦品牌(我猜的)\Envs文件夾下
deactivate
退出python環(huán)境
workon py_django
進入python文件環(huán)境
pip list
顯示環(huán)境內(nèi)的包以及版本
rmvirtualenv py_django
刪除虛擬環(huán)境的命令您机,需要注意的是穿肄,要退出環(huán)境再刪年局,就好像你要先點結(jié)束服務再取卡一樣
pip install django==1.8.2
在python的環(huán)境內(nèi)下載django,因為python虛擬環(huán)境中是與正常的系統(tǒng)隔離開的 所以需要在虛擬環(huán)境中下載django
mkdir pytest(創(chuàng)建)
cd pytest(進入)
創(chuàng)建一個文件夾咸产,用于存放django的項目
django-admin startproject test1
創(chuàng)建一個django項目以及其所在的文件夾
cd test1(進入)
python manage.py startapp booktest(新建)
進入test1文件夾 并新建一個django項目這個是實例項目 系統(tǒng)會以這個名稱建一個文件夾作為項目存放位置
#點開test1的setting_py文件 加入“booktest”
python manage.py runserver(運行)
通過CTRL+C來推出環(huán)境
成功的樣子
還可以通過pycharm進行傻瓜式創(chuàng)建
好了矢否,創(chuàng)建成功了
接下來我們要開始第二天的內(nèi)容了喲
首先需要注意的是,對應于djang1.8.2的是python的3.5版本 如果切換3.7可能會出現(xiàn)不可預知(我不知道)的錯誤脑溢,所以我們要切換到3.5版本僵朗。
定義模型類
首先我們需要進入創(chuàng)建的py_django環(huán)境中的test1文件夾中
1.注冊
2.載入虛擬環(huán)境
靜待配置完成
3.設(shè)計模型類---models.py
4.遷移---遷移前需要進入虛擬環(huán)境
python manage.py makemigrations
顯示下圖便是遷移成功
5.在數(shù)據(jù)庫中生成表
python manage.py migrate
出現(xiàn)下圖所示便表示成功
6.在pycharm中顯示數(shù)據(jù)庫
成功標志如下圖
生成的表的名字叫booktest_bookinfo前者是項目名稱,后者是定義的類的名稱
7.使用shell腳本操作數(shù)據(jù)庫
python manage.py shell
8.設(shè)計人物類
9.依舊是遷移 不贅述
成功如圖
10.執(zhí)行shell進行增刪改查
11.進行人物類與書籍類的關(guān)聯(lián)
12.查看所有的與書籍關(guān)聯(lián)的人物
后臺管理功能
1.后臺管理本地化 市區(qū)調(diào)整
2.創(chuàng)建超級管理員
python manage.py createsuperuser
注意這里密碼不是明文顯示的 是空白的 不要以為是你的鍵盤不好使了 我的密碼是123456
3.啟動服務器試一試超級管理員
python manage.py runserver
在網(wǎng)址的后面輸入admin進入超級管理員登錄界面
登錄成功后的頁面如圖
注冊模型類
1.數(shù)據(jù)庫管理工具
2.如何能夠直接顯示陽間能看得懂的東西呢
重寫一個str方法就好啦
這樣就不是陰間代碼了奧
3.自定義管理頁面
這樣只顯示一個還是不夠清楚明白 這時候我們就需要自定義了
視圖--views.py
視圖就是一個Python函數(shù)焚志,被定義在views.py中衣迷。
視圖的必須有一個參數(shù),一般叫request酱酬,視圖必須返回HttpResponse對象壶谒,HttpResponse中的參數(shù)內(nèi)容會顯示在瀏覽器的頁面上。
首先在django主項目的url中添加一個指向我們booktest項目的url 然后再booktest下面創(chuàng)立url.py文件(從主項目復制也可以)
復制完成之后對booktest下的url進行修改膳沽,此時我們調(diào)用的是我們項目中views.py中定義的視圖模塊汗菜,所以url的response值要指向views.index
正確顯示如下圖
此處我們需要注意的是,因為正則表達式有嚴格和非嚴格之分 加上$才是嚴格的挑社,如果不加的話很有可能出現(xiàn)頁面混亂的錯誤
模板-templates
在Django中陨界,將前端的內(nèi)容定義在模板中,然后再把模板交給視圖調(diào)用痛阻,各種漂亮菌瘪、炫酷的效果就出現(xiàn)了。
首先需要進行環(huán)境配置阱当,將模板的位置定義出來在setting.py中的TEMPLATES中