Django創(chuàng)建應用

django創(chuàng)建應用

創(chuàng)建步驟:

1.打開命令行,進入項目中的manage.py同級目錄

2.命令行輸入:python manage.py startapp blog

3.添加應用名到settings.py中的INSTALLED_APPS里

這樣我們的應用就創(chuàng)建好了

在這里需要注意的是,我們創(chuàng)建的應用名是不允許和Python中的模塊名稱相同,例如os,會創(chuàng)建失敗


應用目錄介紹

blog下的目錄結構:


①.migrations

數(shù)據(jù)移植(遷移)模塊

內(nèi)容自動生成

migrations涉及到數(shù)據(jù)庫的操作,這個模塊(文件夾)下的所有內(nèi)容都是django自動生成的,暫時不需要關注。

②.admin.py

該應用的后臺管理系統(tǒng)配置文件

django有一個特點,它有一個自帶的后臺管理系統(tǒng),每一個應用都有自己的配置文件

③.apps.py

當前應用的一些配置

Django-1.9以后自動生成,理論上可以不使用

④.models.py

? ?數(shù)據(jù)模型模塊

? ?使用ORM框架

數(shù)據(jù)表都是在這里創(chuàng)建,django封裝好了一個叫ORM的框架,具體的使用日后創(chuàng)建數(shù)據(jù)再添加。

⑤.test.py

自動化測試模塊

Django提供了自動化測試功能。

在這里編寫測試腳本(語句)

⑥.views.py?

執(zhí)行響應的代碼所在的模塊

代碼邏輯處理的主要地點

項目中大部分代碼均在這里編寫


創(chuàng)建第一個頁面響應

1. 打開blog下的views.py

每個響應對應一個函數(shù),函數(shù)必須返回一個響應

函數(shù)必須存在一個參數(shù),一般約定為request

每個響應(函數(shù))對應一個URL

views.py對應的代碼:

? ? ?from django.shortcutsimport render

? ? from django.httpimport HttpResponse

? ? ?def index(request):

? ? ? ? ?return HttpResponse('hello world')

2.配置URL

編輯urls.py

每個URL都以URL的形式寫出來

url函數(shù)放在urlpatterns列表中

url函數(shù)三個參數(shù):URL(正則),對應方法,名稱

urls.py的代碼:

? ? from django.conf.urlsimport url

? ? from django.contribimport admin

? ? import blog.views as? bv? ? ? ? ? ?//首先要引用應用下的views文件 并起個名稱bv

? ? urlpatterns= [

? ? url(r'^admin/', admin.site.urls),

? ? url(r'^index/', bv.index,name="index"),? ? ? ? url函數(shù)第一個是正則表達式,第二個是指向哪個響應函數(shù),這里是blog 應用下的views文件(簡稱bv)的 index函數(shù)? ,第三個參數(shù)是url的名稱。

? ? ]

在命令行輸入:Python manage.py runserver

在瀏覽器中的地址欄中輸入:localhost:8080/index

便可以看到輸出的字符串:hello world



附:第二種URL配置

在第一種url配置中,我們使用的是

import blog.views as bv? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 引入blog應用的views.py文件,?

url(r'^index/', bv.index ,name='index'),? ? ? 通過views文件配置了url

現(xiàn)在假如我們的網(wǎng)站非常的大,我們把所有的應用的url都直接寫在根url的配置文件中的話,那么這個根url配置文件就會很龐大,也不利于維護,可能出現(xiàn)url名稱沖突,所以來說一下另外一種url的配置方法。

Including another URLconf

1. Import the include() function: from django.conf.urls import url, include

2. Add a URL to urlpatterns:? url(r'^blog/', include('blog.urls'))

第二種URL配置

包含其他的URL

? ? ?在根urls.py中引入include?

? ? ?在APP應用目錄下創(chuàng)建urls.py文件,格式與urls.py相同

? ? ?根urls.py中url函數(shù)第二個參數(shù)改為include(‘blog.urls’)


應用blog下新建的urls.py文件代碼:

? ? ? ? ? ? ?from django.conf.urls import url

? ? ? ? ? ? ?from django.contribimport admin

? ? ? ? ? ? from . import? views? ? ? ? //引入當前應用的views配置文件

? ? ? ? ? ? ? ? ? ?urlpatterns= [

? ? ? ? ? ? ? ? ? ?url(r'^index/$', views.index),

? ? ? ? ? ? ? ? ? ]

根urls.py文件的代碼:

? ? ? ? ? ? ? ? from django.conf.urlsimport url,include

? ? ? ? ? ? ? ? ?from django.contrib import admin

? ? ? ? ? ? ? ? ? ?urlpatterns= [

? ? ? ? ? ? ? ? ? ? ? ?url(r'^admin/', admin.site.urls),

? ? ? ? ? ? ? ? ? ? ? ?url(r'^blog/',include('blog.urls')),? //引入了blog應用下的urls.py文件

? ? ? ? ? ? ? ? ? ? ? ? ]


注意事項:

根urls.py針對APP配置的URL名稱,是該APP所有URL的總路徑

配置URL是注意正則表達式結尾符號$和/

空字符串用r'^$'而不是r''? ?否則輸入什么都會顯示頁面,要加開始符號和結束符號

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容