概述
前面項(xiàng)目已經(jīng)創(chuàng)建好,網(wǎng)站也有了,所以接下來(lái)要實(shí)現(xiàn)網(wǎng)站的具體功能。在 Django ,人們把這具體的功能稱為“應(yīng)用”( application)
創(chuàng)建應(yīng)用
(作用,把相同的東西提取出來(lái)比如文章的標(biāo)題內(nèi)容等這些相同的字段設(shè)置我們可以將他提取出來(lái))
Python manage.py startapp blog
說(shuō)明:
manage.py 這是一個(gè)管理項(xiàng)目的腳本文件,會(huì)在數(shù)據(jù)庫(kù)的遷移等地方使用
python manage.py startapp
python manage.py check 檢查項(xiàng)目是否存在常見(jiàn)問(wèn)題可以加應(yīng)用名
python manage.py runserver 開(kāi)啟服務(wù)器
python manage.py flush 刪除表中所有數(shù)據(jù)
python manage.py migrate將models遷移到數(shù)據(jù)庫(kù)中
python manage.py makemigrations 生成遷移文件 ,要先生成文件,才能遷移
應(yīng)用說(shuō)明
從上述代碼中可以看出,執(zhí)行了命令之后,在目錄中多了 blog 如果看看這時(shí)候的目錄結(jié)構(gòu),會(huì)看到 blog 里面已經(jīng)有默認(rèn)的文件和目錄了
目錄說(shuō)明:
mysite: 項(xiàng)目的容器。
manage.py: 一個(gè)實(shí)用的命令行工具,可讓你以各種方式與該 Django 項(xiàng)目進(jìn)行交互。
mysite/__init__.py: 一個(gè)空文件,告訴 Python 該目錄是一個(gè) Python 包。
mysite/settings.py: 全局配置文件;包括Django 模塊應(yīng)用配置,數(shù)據(jù)庫(kù)配置,模板配置等。
mysite/urls.py: 路由配置文件。
mysite/wsgi.py: 一個(gè) WSGI 兼容的 Web 服務(wù)器的入口,以便運(yùn)行你的項(xiàng)目。
blog/admin.py :在這個(gè)文件中,可以自定義 Django 管理工具 ,比如設(shè)置在管理界面能夠管理的項(xiàng)目,或者通過(guò)重新自定義與系統(tǒng)管理有關(guān)的類對(duì)象,向管理功能增加新的內(nèi)容
blog/apps.py :這個(gè)文件是djangol.10 之后增加的,通常包含對(duì)應(yīng)用的配置,比如為管理能提供一個(gè)適合的應(yīng)用名稱。
blog/migrations :這是個(gè)目錄,用于存儲(chǔ)應(yīng)用的數(shù)據(jù)庫(kù)表結(jié)構(gòu)的指令,通過(guò)這些指令可以修改和創(chuàng)建數(shù)據(jù)庫(kù),從而在 models.py 模型類和數(shù)據(jù)庫(kù)表之間遷移
blog/models.py :這是應(yīng)用的數(shù)據(jù)模型,每個(gè)Django 應(yīng)用都應(yīng)當(dāng)有一個(gè)models.py 文件,雖然該文件可以為空,但不宜刪除。
blog/tests py:在這個(gè)文件中可以編寫測(cè)試文檔來(lái)測(cè)試所建立的應(yīng)用。
blog/views.py :這是個(gè)重要的文件,用戶保存響應(yīng)各種請(qǐng)求的函數(shù)或者類 如果編寫的是函數(shù),則稱之為基于函數(shù)的視圖:如果編寫的是類,則稱之為基于類的視圖。views.py就是保存函數(shù)或者類的視圖文件。
db.sqlite3:這是個(gè)默認(rèn)的數(shù)據(jù)庫(kù),SQLite Python 默認(rèn)安裝的數(shù)據(jù)庫(kù),在 Django 中也可以默認(rèn)使用。
views文件
我理解views文件在Django中非常重要,它是連接頁(yè)面與數(shù)據(jù)的中間紐帶。拿登錄的例子來(lái)講,用戶在頁(yè)面上輸入了用戶名和密碼點(diǎn)擊登錄。那么 request 請(qǐng)求會(huì)由視圖層views來(lái)接收,如何提取出用戶名和密碼的數(shù)據(jù),如何用這些數(shù)據(jù)去查詢數(shù)據(jù)庫(kù),再如何將登錄成功的頁(yè)面返回給用戶,這些全部由視圖層views來(lái)完成。
與大多數(shù)的Web端開(kāi)發(fā)框架一樣,Django開(kāi)發(fā)同樣使用MVC模式。
- M 數(shù)據(jù)存取部分,由 Django 數(shù)據(jù)庫(kù)層處理,本章要講述的內(nèi)容。
- V 選擇顯示哪些數(shù)據(jù)要顯示以及怎樣顯示的部分,由視圖和模板處理。
- C 根據(jù)用戶輸入委派視圖的部分,由 Django 框架根據(jù) URLconf 設(shè)置,對(duì)給定 URL 調(diào)用適當(dāng)?shù)?Python 函數(shù)。
由于 C 由框架自行處理,而 Django 里更關(guān)注的是模型(Model)、模板(Template)和視圖(Views), Django 也被稱為 MTV 框架 。
在 MTV 開(kāi)發(fā)模式中:
- M 代表模型(Model),即數(shù)據(jù)存取層。 該層處理與數(shù)據(jù)相關(guān)的所有事務(wù): 如何存取、如何驗(yàn)證有效
- T 代表模板(Template),即表現(xiàn)層。 該層處理與表現(xiàn)相關(guān)的決定: 如何在頁(yè)面或其他類型文檔中進(jìn)行顯 示。
- V 代表視圖(View),即業(yè)務(wù)邏輯層。 該層包含存取模型及調(diào)取恰當(dāng)模板的相關(guān)邏輯。 你可以把它看 作模型與模板之間的橋梁。
覺(jué)得有用的朋友多幫忙轉(zhuǎn)發(fā)哦!后面會(huì)分享更多devops和DBA方面的內(nèi)容,感興趣的朋友可以關(guān)注下~
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。