Django框架分享

什么是Django

  • Django是一個(gè)基于Python的高級(jí)web開發(fā)框架;它能讓開發(fā)人員進(jìn)行高效快速的開發(fā)定罢,高度集成吼鱼,免費(fèi)且開源
    在這里插入圖片描述

Django的優(yōu)點(diǎn)

  • DRY韩脑,強(qiáng)調(diào)快速開發(fā)
  • 優(yōu)雅的URL設(shè)計(jì)
  • 自帶強(qiáng)大后臺(tái)
  • 強(qiáng)大的數(shù)據(jù)庫(kù)功能
  • 緩存系統(tǒng)

Django的缺點(diǎn)

  • 系統(tǒng)的耦合度太高
  • 模板語言的支持相對(duì)比較簡(jiǎn)單

Django的MTV架構(gòu)

  • Model層,和MVC中的model層一樣见坑,負(fù)責(zé)應(yīng)用程序的數(shù)據(jù)以及數(shù)據(jù)的處理
  • Template層嚷掠,根據(jù)需求展示Model層的數(shù)據(jù),使用Django的Template的語法
  • View層荞驴,類似于MVC的Controller不皆,負(fù)責(zé)應(yīng)用邏輯的控制


    在這里插入圖片描述

環(huán)境搭建

Django的典型業(yè)務(wù)流程

在這里插入圖片描述

創(chuàng)建工程

-django-admin.py startproject [proj name]

在這里插入圖片描述

  • 運(yùn)行開發(fā)服務(wù)器
    在myblog目錄下,輸入:
    python manage.py runserver
    然后在瀏覽器中輸入:
    127.0.0.1:8000

Django項(xiàng)目的目錄結(jié)構(gòu)

在這里插入圖片描述

Manage.py

  • 執(zhí)行python manage.py 來查看所有的命令
  • 與項(xiàng)目進(jìn)行交互的命令行工具集的入口項(xiàng)目管理器
  • 支持多個(gè)命令
    —?jiǎng)?chuàng)建數(shù)據(jù)庫(kù)
    —啟動(dòng)服務(wù)runserver
    —等等
  • 支持?jǐn)U展自定義的命令

Setting.py

  • 整個(gè)項(xiàng)目的核心配置文件
    —數(shù)據(jù)庫(kù)的連接信息
    —緩存配置
    —Session配置
    —靜態(tài)文件配置
    —用戶自定義的配置信息

url.py

  • Django項(xiàng)目中所有地址(頁(yè)面)都需要我們?nèi)ヅ渲闷銾RL

_init.py

  • Python中聲明模塊的文件,內(nèi)容默認(rèn)為空

Wsgi.py

  • 定義:Python web server gateway interface 熊楼,Python服務(wù)器網(wǎng)關(guān)接口
  • Python有許多的 Web 框架霹娄,而同時(shí)又有許多的 Web 服務(wù)器(Apache, Nginx, Gunicorn等),框架和Web服務(wù)器之間需要進(jìn)行通信鲫骗,如果在設(shè)計(jì)時(shí)它們之間不可以相互匹配的犬耻,那么選擇了一個(gè)框架就會(huì)限制對(duì) Web 服務(wù)器的選擇。
  • 為確敝刺可以在不修改Web服務(wù)器代碼或網(wǎng)絡(luò)框架代碼的前提下枕磁,使用自己選擇的服務(wù)器,并且匹配多個(gè)不同的網(wǎng)絡(luò)框架术吝,對(duì)python來說透典,設(shè)計(jì)WSGI來解決。
  • WSGI顿苇,讓開發(fā)者可以將 Web 框架與 Web 服務(wù)器的選擇分隔開來,不再相互限制税弃〖退辏可以將不同的 Web 服務(wù)器與Web框架進(jìn)行混合搭配,選擇滿足自己需求的組合则果。


    在這里插入圖片描述

Django的項(xiàng)目中的App

  • 一個(gè)Django項(xiàng)目有多個(gè)App組成

  • APP
    — 一個(gè)App對(duì)應(yīng)一組URL
    — 每個(gè)App是一個(gè)獨(dú)立的目錄幔翰,每個(gè)目錄由一個(gè)model.py,view.py和test.py,[URL.py]組成
    — model.py是應(yīng)用所需要的數(shù)據(jù)定義
    — view.py是存放App應(yīng)用邏輯的

  • 每個(gè)App必須被注冊(cè)到settings.py的INSTALLED_APP中

  • Django自帶很多App漩氨,提供了很多方便的功能
    Django.contrib.auth,用戶認(rèn)證
    Django.contrib.admin,后臺(tái)管理應(yīng)用

應(yīng)用程序目錄結(jié)構(gòu)

  • migrations
  • init.py
  • admin.py
  • apps.py
  • models.py
  • test.py
  • view.py

URL分發(fā)和視圖

  • Django內(nèi)部維護(hù)了一張URL和視圖的映射表遗增,當(dāng)請(qǐng)求到來的時(shí)候叫惊,選擇匹配URL的視圖函數(shù)來處理請(qǐng)求

編寫路由

  • 路由都在urls文件里,它將瀏覽器輸入的url映射到相應(yīng)的業(yè)務(wù)處理邏輯做修。


    在這里插入圖片描述

View.py

  • 執(zhí)行響應(yīng)的代碼所在模塊
  • 代碼邏輯處理的主要地點(diǎn)
  • 項(xiàng)目中大部分代碼均在這里編寫

編寫業(yè)務(wù)邏輯

在這里插入圖片描述

Django的模板語言

  • 用兩個(gè)大括號(hào)包圍的表示變量
  • 用一個(gè)大括號(hào)和百分號(hào)包圍的表示模板標(biāo)簽
    —IF判斷
    —FOR循環(huán)
  • 支持自定義標(biāo)簽和過濾器

模板標(biāo)簽

  • 標(biāo)簽必須成對(duì)出現(xiàn)并且關(guān)閉
    {% IF %} … {% END IF %}
    {% FOR %} … {% END FOR %}

返回HTML文件

在這里插入圖片描述

在這里插入圖片描述

修改Settings文件

  • 為了讓django知道html文件在哪里霍狰,需要修改settings文件的相應(yīng)內(nèi)容。但默認(rèn)情況下饰及,它正好適用蔗坯,無需修改。


    在這里插入圖片描述

靜態(tài)文件

  • 我們已經(jīng)可以將html文件返還給用戶了燎含,但是還不夠宾濒,前端三大塊,html屏箍、css绘梦、js還有各種插件,它們齊全才是一個(gè)完整的頁(yè)面赴魁。在django中卸奉,一般將靜態(tài)文件放在static目錄中。接下來尚粘,在mysite中新建個(gè)static目錄择卦。


    在這里插入圖片描述

models.py

  • 數(shù)據(jù)模塊
  • 使用ORM框架

ORM

Model類

  • 每一個(gè)Model類表示一張表,生成的數(shù)據(jù)庫(kù)表的名字默認(rèn)是APP的名字_類的名字

  • 每個(gè)Model類里面都有多個(gè)Filed的Instance變量

Field對(duì)象

  • 一個(gè)Field變量表示一個(gè)表中的字段
  • Django支持大量的字段類型郎嫁,例如 TextField, IntegerField等等

使用數(shù)據(jù)庫(kù)

  • django通過自帶的ORM框架操作數(shù)據(jù)庫(kù)秉继,并且自帶輕量級(jí)的sqlite3數(shù)據(jù)庫(kù)。下面我們來看一看:
  • 在setting中注冊(cè)APP


    在這里插入圖片描述
  • 在settings配置數(shù)據(jù)庫(kù)的相關(guān)參數(shù)


    在這里插入圖片描述

修改model.py

  • 創(chuàng)建用戶名和密碼兩個(gè)字段


    在這里插入圖片描述

創(chuàng)建數(shù)據(jù)庫(kù)的表

  • python manage.py makemigrations


    在這里插入圖片描述
  • python manage.py migrate


    在這里插入圖片描述

tests.py

  • 自動(dòng)化測(cè)試模塊
  • Django提供了自動(dòng)測(cè)試功能
  • 在這里編寫測(cè)試腳本
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末泽铛,一起剝皮案震驚了整個(gè)濱河市尚辑,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌盔腔,老刑警劉巖杠茬,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異弛随,居然都是意外死亡瓢喉,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門舀透,熙熙樓的掌柜王于貴愁眉苦臉地迎上來栓票,“玉大人,你說我怎么就攤上這事愕够∽咛埃” “怎么了佛猛?”我有些...
    開封第一講書人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)坠狡。 經(jīng)常有香客問我继找,道長(zhǎng),這世上最難降的妖魔是什么逃沿? 我笑而不...
    開封第一講書人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任婴渡,我火速辦了婚禮,結(jié)果婚禮上感挥,老公的妹妹穿的比我還像新娘缩搅。我一直安慰自己,他們只是感情好触幼,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開白布硼瓣。 她就那樣靜靜地躺著,像睡著了一般置谦。 火紅的嫁衣襯著肌膚如雪堂鲤。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評(píng)論 1 297
  • 那天媒峡,我揣著相機(jī)與錄音瘟栖,去河邊找鬼。 笑死谅阿,一個(gè)胖子當(dāng)著我的面吹牛半哟,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播签餐,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼寓涨,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了氯檐?” 一聲冷哼從身側(cè)響起戒良,我...
    開封第一講書人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎冠摄,沒想到半個(gè)月后糯崎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡河泳,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年沃呢,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拆挥。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡樟插,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情黄锤,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布食拜,位于F島的核電站鸵熟,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏负甸。R本人自食惡果不足惜流强,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望呻待。 院中可真熱鬧打月,春花似錦、人聲如沸蚕捉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽迫淹。三九已至秘通,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間敛熬,已是汗流浹背肺稀。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留应民,地道東北人话原。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像诲锹,于是被迫代替她去往敵國(guó)和親繁仁。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

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

  • 1.有人說 今天寫著寫著代碼用到了unset所以想整理一下. 有的人說PHP的unset并不真正釋放內(nèi)存, 有的說...
    會(huì)長(zhǎng)__閱讀 1,018評(píng)論 0 5
  • 12+12融合創(chuàng)策紀(jì)實(shí)攝影主題訓(xùn)練營(yíng)~貴州師大美院16課程《專題紀(jì)實(shí)攝影》12分鐘紀(jì)實(shí)作業(yè)辕狰。 題目:我的晚餐 作者...
    冉冉孤生竹_371e閱讀 345評(píng)論 0 0
  • 人活著本身就不容易改备,累了就應(yīng)該休息,但就連休息本身都并非易事蔓倍。我常常對(duì)自己說:“累悬钳,就對(duì)了,爽是留給死人的偶翅!”但持...
    夜貓小七閱讀 400評(píng)論 2 4
  • 夜晚默勾,寂靜無聲 。人們都進(jìn)入了夢(mèng)鄉(xiāng)聚谁,小花靜靜地盛開著度過屬于自己的夜生活母剥。沒有嘰嘰喳喳的鳥兒,沒有忙碌的蝴蝶蜜...
    紀(jì)邶閱讀 200評(píng)論 0 1