django開(kāi)發(fā)基礎(chǔ)–創(chuàng)建應(yīng)用程序(django 創(chuàng)建應(yīng)用)
概述
前面項(xiàng)目已經(jīng)創(chuàng)建好,網(wǎng)站也有了,所以接下來(lái)要實(shí)現(xiàn)網(wǎng)站的具體功能。在 Django ,人們把這具體的功能稱(chēng)為“應(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)的類(lèi)對(duì)象,向管理功能增加新的內(nèi)容
blog/apps.py :這個(gè)文件是djangol.10 之后增加的,通常包含對(duì)應(yīng)用的配置,比如為管理能提供一個(gè)適合的應(yīng)用名稱(chēng)。
blog/migrations :這是個(gè)目錄,用于存儲(chǔ)應(yīng)用的數(shù)據(jù)庫(kù)表結(jié)構(gòu)的指令,通過(guò)這些指令可以修改和創(chuàng)建數(shù)據(jù)庫(kù),從而在 models.py 模型類(lèi)和數(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è)文件中可以編寫(xiě)測(cè)試文檔來(lái)測(cè)試所建立的應(yīng)用。
blog/views.py :這是個(gè)重要的文件,用戶(hù)保存響應(yīng)各種請(qǐng)求的函數(shù)或者類(lèi) 如果編寫(xiě)的是函數(shù),則稱(chēng)之為基于函數(shù)的視圖:如果編寫(xiě)的是類(lèi),則稱(chēng)之為基于類(lèi)的視圖。views.py就是保存函數(shù)或者類(lèi)的視圖文件。
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)講,用戶(hù)在頁(yè)面上輸入了用戶(hù)名和密碼點(diǎn)擊登錄。那么 request 請(qǐng)求會(huì)由視圖層views來(lái)接收,如何提取出用戶(hù)名和密碼的數(shù)據(jù),如何用這些數(shù)據(jù)去查詢(xún)數(shù)據(jù)庫(kù),再如何將登錄成功的頁(yè)面返回給用戶(hù),這些全部由視圖層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ù)用戶(hù)輸入委派視圖的部分,由 Django 框架根據(jù) URLconf 設(shè)置,對(duì)給定 URL 調(diào)用適當(dāng)?shù)?Python 函數(shù)。
由于 C 由框架自行處理,而 Django 里更關(guān)注的是模型(Model)、模板(Template)和視圖(Views), Django 也被稱(chēng)為 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è)面或其他類(lèi)型文檔中進(jìn)行顯 示。
- V 代表視圖(View),即業(yè)務(wù)邏輯層。 該層包含存取模型及調(diào)取恰當(dāng)模板的相關(guān)邏輯。 你可以把它看 作模型與模板之間的橋梁。
覺(jué)得有用的朋友多幫忙轉(zhuǎn)發(fā)哦!后面會(huì)分享更多devops和DBA方面的內(nèi)容,感興趣的朋友可以關(guān)注下~