django簡(jiǎn)記02

Django的來(lái)歷:python開(kāi)發(fā)的!

long long long years ago!勞倫斯出版集團(tuán)新聞

網(wǎng)絡(luò)渲染發(fā)布自己的新聞——> 需要有自己的網(wǎng)站-> 處理效率較高的網(wǎng)站

鑒于當(dāng)時(shí)該公司程序員,python開(kāi)發(fā)的棋恼!

降低開(kāi)發(fā)成本[優(yōu)先選擇自己公司已有程序員的開(kāi)發(fā)能力!]

python-> web開(kāi)發(fā)-> 代碼的復(fù)雜度較高屎即,技術(shù)難度較低拂檩!

封裝python開(kāi)發(fā)web網(wǎng)站的大部分的應(yīng)用模塊-> Django

網(wǎng)站的開(kāi)發(fā)過(guò)程中浅侨,使用漠秋、升級(jí)烹看、完善百宇、封裝->迭代升級(jí)-> 完善的一個(gè)操作模塊

2005年開(kāi)源發(fā)布[開(kāi)發(fā)源代碼]豁延,共享昙篙!讓所有的技術(shù)愛(ài)好者,可以共同開(kāi)發(fā)維護(hù)诱咏!

開(kāi)源~滿足開(kāi)源協(xié)議

2007年社區(qū)發(fā)布了第一個(gè)正式版本1.0苔可,發(fā)布之后,由于Django開(kāi)發(fā)web網(wǎng)站的極度的高效性袋狞,很快流行起來(lái)焚辅!

2010年,Python稱為TOIBE年度語(yǔ)言苟鸯,但是沒(méi)有流行的契機(jī)同蜻!

2016年,python跟隨著Goole的AlphaGO和對(duì)應(yīng)的人工智能早处,再度崛起湾蔓!

2017年,python稱為人工智能的首選語(yǔ)言砌梆!

python第一次被國(guó)家機(jī)構(gòu)認(rèn)可默责,成為了教科書語(yǔ)言!

1-1 Django的優(yōu)勢(shì)

Django是python語(yǔ)言編寫的咸包,專門用于快速桃序、高效的開(kāi)發(fā)web應(yīng)用程序的一個(gè)框架!

|

框架:模塊的集合烂瘫,除了具備模塊所有的功能之外媒熊,同時(shí)會(huì)提供一些簡(jiǎn)單的功能處理流程,方便開(kāi)發(fā)人員對(duì)于指定流程的自動(dòng)化處理!同時(shí)框架會(huì)根據(jù)不同的功能流程有自己的一些特定的軟件結(jié)構(gòu)模式泛释,所以框架在某種程度上也是一種獨(dú)立的軟件滤愕!

模塊:類似于pymysql/pygame,模塊是python中代碼塊的集合怜校,一般會(huì)包含多個(gè)變量间影、函數(shù)、類型等

|

Django由于其非常有特點(diǎn)的特性茄茁,很快流行于web開(kāi)發(fā)領(lǐng)域

l 先進(jìn)的MVT處理模式

l 自動(dòng)化的項(xiàng)目構(gòu)建管理方式

l 完善的數(shù)據(jù)模型處理

l 強(qiáng)大的后臺(tái)管理系統(tǒng)

l 優(yōu)秀的ORM操作模塊

l 優(yōu)雅的模板操作封裝

l 優(yōu)異的緩存支持

l 完美的表單操作封裝

l 內(nèi)建Sqlite數(shù)據(jù)庫(kù)魂贬,和其他各種類型數(shù)據(jù)庫(kù)的支持

l more……

1-2 Django框架中MVT處理模式

關(guān)于web軟件的架構(gòu)模式

傳統(tǒng)的web軟件處理模式:MVC處理模式

Django進(jìn)行了封裝和升級(jí)的處理模式:MVT處理模式

關(guān)于軟件和業(yè)務(wù)功能的架構(gòu)模式

B/S C/S 軟件架構(gòu)模型

B2B C2C B2C 業(yè)務(wù)架構(gòu)模型

1-3 Django快速入門

l 安裝Django

Django是一個(gè)框架,是一個(gè)用來(lái)快速開(kāi)發(fā)web應(yīng)用程序的框架

Django框架的安裝方式

所有版本:Django1.0->Django2.0.x

最新的版本:Django2.0.x版本:主要用來(lái)進(jìn)行學(xué)習(xí)和測(cè)試

流行的版本:Django1.8~1.11版本裙顽,也是公司常用的版本

Django的安裝

pip install django -> 默認(rèn)安裝了最新的穩(wěn)定版本 2.0

pip install django==1.11 ->指定版本安裝

安裝過(guò)程中出現(xiàn)了關(guān)鍵字Permission的錯(cuò)誤付燥,表示權(quán)限不夠,通過(guò)管理員權(quán)限運(yùn)行命令行再次執(zhí)行命令愈犹,就可以安裝成功键科!

l 項(xiàng)目搭建

a. 創(chuàng)建項(xiàng)目

使用Django創(chuàng)建一個(gè)web項(xiàng)目:項(xiàng)目自動(dòng)化創(chuàng)建構(gòu)造

django-admin startproject 項(xiàng)目名稱

|-- myproject/ 項(xiàng)目的主目錄,存放項(xiàng)目中所有文件的文件夾

|-- myproject/ 項(xiàng)目的主項(xiàng)目/根項(xiàng)目漩怎,用來(lái)管理所有的項(xiàng)目

|-- init.py 包定義文件勋颖,定義了存放這個(gè)文件的文件夾是一個(gè)python包

|-- settings.py 項(xiàng)目中所有的配置信息存放的模塊,配置模塊

|-- urls.py 路由模塊勋锤,定義url地址和訪問(wèn)的處理函數(shù)之間的映射關(guān)系

|-- wsgi.py 實(shí)現(xiàn)了wsgi網(wǎng)關(guān)協(xié)議的模塊饭玲,表示Django項(xiàng)目支持wsgi網(wǎng)關(guān)協(xié)議

|-- manager.py 項(xiàng)目的命令行支持模塊,可以在命令行執(zhí)行不同的命令實(shí)現(xiàn)不同的功能

b. 運(yùn)行測(cè)試

啟動(dòng)項(xiàng)目叁执,在瀏覽器中訪問(wèn)項(xiàng)目是否創(chuàng)建成功

在命令行中茄厘,進(jìn)入項(xiàng)目主目錄,執(zhí)行下面的命令

python manage.py runserver

執(zhí)行完上述命令之后谈宛,在瀏覽器中訪問(wèn):http://localhost:8000查看訪問(wèn)到的頁(yè)面

c. 創(chuàng)建第一個(gè)根項(xiàng)目的視圖

首先在根項(xiàng)目下次哈,創(chuàng)建一個(gè)模塊:views.py

在view.py中,創(chuàng)建一個(gè)函數(shù)入挣,返回一個(gè)數(shù)據(jù)[函數(shù):視圖處理函數(shù)]

d. 配置路由應(yīng)用

打開(kāi)myproject/urls.py路由模塊

添加一個(gè)新的路由映射地址

e. 運(yùn)行程序

l 創(chuàng)建第一個(gè)模塊應(yīng)用

a. 創(chuàng)建一個(gè)模塊應(yīng)用

在項(xiàng)目主目錄中執(zhí)行命令[app : application]

django-admin startapp 模塊名稱[二級(jí)網(wǎng)站]

|-- myblog/ 模塊的根目錄亿乳;二級(jí)網(wǎng)站的根目錄

|-- migrations/ 數(shù)據(jù)庫(kù)文件存放的文件夾[數(shù)據(jù)庫(kù)部分細(xì)講]

|-- init.py 包定義文件

|-- admin.py 后臺(tái)管理文件[后臺(tái)管理系統(tǒng)細(xì)講]

|-- apps.py 模塊名稱定義文件

|-- models.py 數(shù)據(jù)模型定義文件

|-- test.py 測(cè)試文件——一般用不上

|-- views.py 視圖模塊,定義視圖處理函數(shù)

b. 將模塊應(yīng)用径筏,添加到根項(xiàng)目中

修改myproject/settings.py配置文件

INSTALLED_APP選項(xiàng)列表中葛假,添加myblog

c. 編寫模塊的視圖處理函數(shù)

修改views.py文件,添加一個(gè)博客首頁(yè)的視圖處理函數(shù)

d. 配置模塊的路由映射

myblog模塊中創(chuàng)建一個(gè)路由模塊urls.py

e. 將模塊中的路由滋恬,添加到根項(xiàng)目的路由中

根項(xiàng)目的路由:主路由

模塊中的路由:子路由

|

小總結(jié):

1. 創(chuàng)建Django****項(xiàng)目:公司門戶項(xiàng)目

**django-admin startproject myproject **

創(chuàng)建了一個(gè)名稱為myproject****的項(xiàng)目

2. 配置語(yǔ)言環(huán)境

打開(kāi)創(chuàng)建的項(xiàng)目配置文件myproject/myproject/settings.py

修改配置選項(xiàng)如下:

# LANGUAGE_CODE = ‘en_us****’ 注釋掉

LANGUAGE_CODE = ‘zh_Hans’ 添加

3. 定義門戶首頁(yè)的視圖

在myproject/myproject/****文件夾下聊训,創(chuàng)建一個(gè)views.py****視圖模塊

編輯函數(shù)如下:

# 引入模塊

from django.http import HttpResponse

# 定義處理函數(shù)

def index(request):

return HttpResponse(“****公司首頁(yè)”)

4. 配置主路由

打開(kāi)myproject/myproject/urls.py****路由模塊

編輯內(nèi)容如下

from django.conf.urls import url

from django.contrib import admin

from . import views

urlpatterns = [

url(r‘^admin/’, admin.site.urls),

url(r‘^$’, views.index, name=’index’),

]

5. 運(yùn)行項(xiàng)目,測(cè)試主項(xiàng)目是否能訪問(wèn)成功

cd myproject/ 進(jìn)入項(xiàng)目主目錄 【切記不要進(jìn)入根項(xiàng)目】

python manage.py runserver 運(yùn)行程序

打開(kāi)瀏覽器恢氯,訪問(wèn)http://localhost:8000就可以查看到 公司首頁(yè) 的視圖

|
|

6. 創(chuàng)建一個(gè)模塊應(yīng)用——公司博客

進(jìn)入主目錄带斑,執(zhí)行命令創(chuàng)建博客模塊

cd myproject/ 進(jìn)入項(xiàng)目主目錄 【切記不要進(jìn)入根項(xiàng)目】

django-admin startapp myblog

7. 將模塊項(xiàng)目添加到根項(xiàng)目中

修改myproject/myproject/settings.py****配置文件

INSTALLED_APPS****配置選項(xiàng)的列表中鼓寺,在末尾添加上模塊名稱

INSTALLED_APPS = [

..

‘myblog’,

]

8. 配置模塊子路由文件

在myproject/myblog/****文件夾下,常見(jiàn)一個(gè)路由配置文件urls.py****【子路由】

編輯內(nèi)容如下

from django.conf.urls import url

from . import views

urlpatterns = [

** url(r‘^$’, views.index, name=”index”),**

]

9. 將子路由勋磕,添加到根項(xiàng)目的主路由中

修改根項(xiàng)目主路由文件myproject/myproject/urls.py****妈候,編輯內(nèi)容如下:

from django.conf.urls import url, include

from django.contrib import admin

from . import views

urlpatterns = [

url(r‘^admin/’, admin.site.urls),

url(r‘^myblog/’, include(‘myblog.urls’)),

url(r’^$’, views.index, name=’index’),

]

10. 運(yùn)行測(cè)試

在中目錄中,執(zhí)行命令啟動(dòng)服務(wù)器

python manage.py runserver

打開(kāi)瀏覽器挂滓,訪問(wèn)項(xiàng)目:公司首頁(yè)

http://localhost:8000

打開(kāi)瀏覽器苦银,訪問(wèn)模塊:公司博客首頁(yè)

http://localhost:8000/myblog/

|
|

任務(wù):梳理總結(jié) [****百度]

Django****框架的描述

MVC****處理模式描述

MVT****處理模式的描述

B/S C/S****軟件結(jié)構(gòu)的描述

B2B C2C B2C****業(yè)務(wù)結(jié)構(gòu)的描述

簡(jiǎn)單搭建項(xiàng)目測(cè)試:

了解Django****項(xiàng)目和模塊項(xiàng)目的創(chuàng)建以及使用過(guò)程[]

模擬上午的內(nèi)容,自行搭建Django****項(xiàng)目——

|
|

預(yù)留1個(gè)小時(shí)

沒(méi)有完成的學(xué)員——完成梳理總結(jié)和第一個(gè)版本的項(xiàng)目開(kāi)發(fā)

初步完成的學(xué)員——按照有條理的方式赶站,將文檔進(jìn)行二次整理幔虏,發(fā)布到簡(jiǎn)書上!

|

Django web項(xiàng)目開(kāi)發(fā)以及處理流程

  1. Django項(xiàng)目的請(qǐng)求處理流程

創(chuàng)建項(xiàng)目:django-admin startproject mysite

項(xiàng)目中的各個(gè)文件夾:

|-- mysite/ 項(xiàng)目的主目錄[包含了項(xiàng)目中所有的文件信息]

|-- mysite/ 項(xiàng)目的根項(xiàng)目贝椿、主項(xiàng)目[管理所有的模塊項(xiàng)目]

|-- init.py 包(package)聲明文件

|-- settings.py 項(xiàng)目配置信息[項(xiàng)目中所有開(kāi)關(guān)性質(zhì)的變量-LANGUAGE_CODE]

|-- urls.py 項(xiàng)目的主路由配置文件[路由:映射url地址和調(diào)用處理函數(shù)]

|-- wsgi.py Django項(xiàng)目實(shí)現(xiàn)Wsgi網(wǎng)關(guān)協(xié)議的模塊

|-- manage.py 命令模塊想括,支持django可以通過(guò)命令操作項(xiàng)目中的指定功能

定義視圖處理函數(shù):views.py模塊中定義

定義一個(gè)普通函數(shù),可以在路由模塊中綁定給指定的url地址烙博;通過(guò)Url地址的方式調(diào)用這個(gè)普通函數(shù)[可以通過(guò)url地址調(diào)用執(zhí)行的普通函數(shù):視圖處理函數(shù)]

視圖處理函數(shù)中的返回值:HttpResponse

Http:超文本傳輸協(xié)議

Response:響應(yīng)數(shù)據(jù)

HttpResponse:支持超文本數(shù)據(jù)傳輸?shù)囊粋€(gè)響應(yīng)對(duì)象

路由配置:將視圖處理函數(shù)瑟蜈,綁定到指定的url地址上

可以通過(guò)瀏覽器中訪問(wèn)url地址,調(diào)用執(zhí)行指定的views.py模塊中的視圖處理函數(shù)

根項(xiàng)目中的路由配置渣窜,[根項(xiàng)目中的路由:主路由]通過(guò)mysite/mysite/urls.py模塊

啟動(dòng)項(xiàng)目踪栋,直接通過(guò)瀏覽器進(jìn)行訪問(wèn)測(cè)試

注意:代碼開(kāi)發(fā)過(guò)程中,開(kāi)發(fā)完一個(gè)完整的小流程图毕,就需要運(yùn)行測(cè)試這個(gè)小流程是否正確;千萬(wàn)切記不要等到所有功能一次性寫完再運(yùn)行測(cè)試此時(shí)如果出現(xiàn)大量報(bào)錯(cuò)眷唉!就需要非常有經(jīng)驗(yàn)的老司機(jī)才能準(zhǔn)確判斷出錯(cuò)位置和排查錯(cuò)誤予颤!

創(chuàng)建子項(xiàng)目/模塊項(xiàng)目

django-admin startapp blog

項(xiàng)目整體文件結(jié)構(gòu)

|-- mysite / 項(xiàng)目主目錄

|-- mysite/ 根項(xiàng)目

|-- init.py

|-- settings.py

|-- urls.py

|-- views.py

|-- wsgi.py

|-- blog/ 子項(xiàng)目

|-- init.py

|-- admin.py 后臺(tái)管理相關(guān)[后臺(tái)管理部分詳細(xì)說(shuō)明]

|-- app.py 項(xiàng)目描述文件[子項(xiàng)目名稱]

|-- models.py 子項(xiàng)目中數(shù)據(jù)模型的定義[****明天詳細(xì)講]

|-- views.py 子項(xiàng)目中的視圖函數(shù)處理模塊

|-- urls.py 子項(xiàng)目中的路由模塊[子路由]

|-- test.py 測(cè)試模塊[以后擴(kuò)展]

|-- manager.py

定義子項(xiàng)目視圖模塊——定義子項(xiàng)目中的首頁(yè)視圖處理函數(shù)

mysite/blog/views.py

定義子路由操作——配置子項(xiàng)目中的路由模塊

本身該文件在創(chuàng)建項(xiàng)目時(shí)是不存在的,需要手工創(chuàng)建

mysite/blog/urls.py

子路由和主路由的關(guān)系

訪問(wèn)關(guān)系冬阳,用戶在瀏覽器客戶端發(fā)起的請(qǐng)求地址蛤虐,首先會(huì)進(jìn)入主路由進(jìn)行查詢,查詢不到匹配的地址肝陪,就會(huì)進(jìn)入對(duì)應(yīng)的子路由進(jìn)行查詢驳庭,知道查詢匹配成功返回指定視圖函數(shù)執(zhí)行的結(jié)果!如果查詢不到氯窍,就會(huì)返回404錯(cuò)誤頁(yè)面[資源沒(méi)有找到]

簡(jiǎn)短總結(jié):

Django入門部分

l web****應(yīng)用程序開(kāi)發(fā)步驟

n 創(chuàng)建主項(xiàng)目

n 定義根項(xiàng)目中的視圖處理函數(shù)

n 配置根項(xiàng)目中的路由模塊[主路由]

n 創(chuàng)建子項(xiàng)目(子項(xiàng)目——>添加到根項(xiàng)目管理中-> settgins.py-INSTALLED_APPS)

n 定義子項(xiàng)目中的視圖處理函數(shù)

n 配置子項(xiàng)目中的路由模塊[子路由]

n 配置子路由和主路由之間的關(guān)聯(lián)關(guān)系

l 引入的各種包

n 視圖模塊:from django.http import HttpResponse

n 路由模塊:from django.conf.urls import url, include

u from . import views

晚自習(xí)項(xiàng)目任務(wù):搜狐門戶開(kāi)發(fā)

提示如下:

根項(xiàng)目django-admin startproject sohu

子項(xiàng)目django-admin startapp sohu_email

django-admin startapp sohu_blog

django-admin startapp sohu_news

django-admin startapp sohu_tv

..

?著作權(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)離奇詭異播聪,居然都是意外死亡朽基,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門离陶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)稼虎,“玉大人,你說(shuō)我怎么就攤上這事招刨■” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵计济,是天一觀的道長(zhǎng)茸苇。 經(jīng)常有香客問(wèn)我,道長(zhǎng)沦寂,這世上最難降的妖魔是什么学密? 我笑而不...
    開(kāi)封第一講書人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮传藏,結(jié)果婚禮上腻暮,老公的妹妹穿的比我還像新娘。我一直安慰自己毯侦,他們只是感情好哭靖,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著侈离,像睡著了一般试幽。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上卦碾,一...
    開(kāi)封第一講書人閱讀 51,125評(píng)論 1 297
  • 那天铺坞,我揣著相機(jī)與錄音,去河邊找鬼洲胖。 笑死济榨,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的绿映。 我是一名探鬼主播擒滑,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼叉弦!你這毒婦竟也來(lái)了丐一?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤淹冰,失蹤者是張志新(化名)和其女友劉穎钝诚,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(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
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望疹味。 院中可真熱鬧仅叫,春花似錦、人聲如沸糙捺。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)洪灯。三九已至坎缭,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間签钩,已是汗流浹背幻锁。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(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)容