Python-django

一.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é)果君仆。


MVC框架

②MVT:
1.M全拼為Model翩概,與MVC中的M功能相同牲距,負責和數(shù)據(jù)庫交互,進行數(shù)據(jù)處理钥庇。
2.V全拼為View牍鞠,與MVC中的C功能相同,接收請求评姨,進行業(yè)務處理难述,返回應答。
3.T全拼為Template吐句,與MVC中的V功能相同胁后,負責封裝構(gòu)造要返回的html。
(差異就在于黑線黑箭頭標識出來的部分)


MVT框架
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)建


STEP1

好了矢否,創(chuàng)建成功了


接下來我們要開始第二天的內(nèi)容了喲
首先需要注意的是,對應于djang1.8.2的是python的3.5版本 如果切換3.7可能會出現(xiàn)不可預知(我不知道)的錯誤脑溢,所以我們要切換到3.5版本僵朗。
定義模型類
首先我們需要進入創(chuàng)建的py_django環(huán)境中的test1文件夾中
1.注冊


image.png

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)頁面混亂的錯誤
image.png

image.png

image.png

模板-templates

在Django中陨界,將前端的內(nèi)容定義在模板中,然后再把模板交給視圖調(diào)用痛阻,各種漂亮菌瘪、炫酷的效果就出現(xiàn)了。
首先需要進行環(huán)境配置阱当,將模板的位置定義出來在setting.py中的TEMPLATES中


第一步
第二步

第三步

第四步

第五步

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末俏扩,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子弊添,更是在濱河造成了極大的恐慌录淡,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件油坝,死亡現(xiàn)場離奇詭異嫉戚,居然都是意外死亡,警方通過查閱死者的電腦和手機澈圈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進店門彬檀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人瞬女,你說我怎么就攤上這事凤覆。” “怎么了拆魏?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵盯桦,是天一觀的道長慈俯。 經(jīng)常有香客問我,道長拥峦,這世上最難降的妖魔是什么贴膘? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮略号,結(jié)果婚禮上刑峡,老公的妹妹穿的比我還像新娘。我一直安慰自己玄柠,他們只是感情好突梦,可當我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著羽利,像睡著了一般宫患。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上这弧,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天娃闲,我揣著相機與錄音,去河邊找鬼匾浪。 笑死皇帮,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的蛋辈。 我是一名探鬼主播属拾,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼冷溶!你這毒婦竟也來了渐白?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤挂洛,失蹤者是張志新(化名)和其女友劉穎礼预,沒想到半個月后眠砾,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體虏劲,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年褒颈,在試婚紗的時候發(fā)現(xiàn)自己被綠了柒巫。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡谷丸,死狀恐怖堡掏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情刨疼,我是刑警寧澤泉唁,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布鹅龄,位于F島的核電站,受9級特大地震影響亭畜,放射性物質(zhì)發(fā)生泄漏扮休。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一拴鸵、第九天 我趴在偏房一處隱蔽的房頂上張望玷坠。 院中可真熱鬧,春花似錦劲藐、人聲如沸八堡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽兄渺。三九已至,卻和暖如春厉膀,著一層夾襖步出監(jiān)牢的瞬間溶耘,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工服鹅, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留凳兵,地道東北人。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓企软,卻偏偏與公主長得像庐扫,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子仗哨,可洞房花燭夜當晚...
    茶點故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容