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''? ?否則輸入什么都會顯示頁面,要加開始符號和結束符號