一系枪、創(chuàng)建第一個(gè)頁(yè)面(響應(yīng))
1.進(jìn)入項(xiàng)目中的views.py文件中添加代碼:
form django import HttpResponse
def index(request):
return HttpResponse("hello world")
2.在urls.py中配置url
第一種url配置:
- 第一個(gè)參數(shù)是url本身雀哨,是一個(gè)地址(用的是正則表達(dá)式)
- 第二個(gè)參數(shù)是響應(yīng)函數(shù)
- url名稱(可以省略)
url(r'^index/',bv.index),
3.運(yùn)行服務(wù)器
pyhton manage.py runserver
4.進(jìn)入瀏覽器,地址欄中輸入:
就可以看到 計(jì)算機(jī)界十分經(jīng)典的* hello world *的字樣
注意:
每個(gè)響應(yīng)對(duì)應(yīng)一個(gè)函數(shù)私爷,函數(shù)必須返回一個(gè)響應(yīng)
函數(shù)必須存在一個(gè)參數(shù)雾棺,一般約定為request
第二種URL配置:
from django.conf.urls import url,include
- 刪除掉
import blog.views as bv
- 修改url函數(shù)的第二個(gè)參數(shù),第一個(gè)參數(shù)也順便修改得合理些:
url(r'^blog/',include('blog.urls')),
- 在blog目錄下創(chuàng)建一個(gè)urls.py文件,其中的代碼
from django.conf.urls import url,include
from . import views
urlpatterns = [
url(r'^$',views.index),
]
ps:改成空字符串是因?yàn)閮蓚€(gè)文件中的路徑一樣衬浑,沒(méi)有必要
^是用來(lái)約束以空開(kāi)始捌浩,$約束以空結(jié)尾
二、創(chuàng)建template
1.templates介紹
是HTML文件工秩,使用了Django模板語(yǔ)言(Django Templates Language ,DTL)
也可以使用第三方模板(如Jinja2)
2.開(kāi)發(fā)第一個(gè)Template
步驟:
- 在APP根目錄下創(chuàng)建名叫Templates的目錄
- 在該目錄下創(chuàng)建HTML文件:index.html
- 在views.py中修改index函數(shù):
def index(request):
return render(request,"index.html")
render的第一個(gè)參數(shù)是請(qǐng)求對(duì)象本身尸饺,第二個(gè)是模板文件,第三個(gè)是后臺(tái)傳遞到前端的數(shù)據(jù)可以省略
3.DTL的初步使用
render函數(shù)中支持一個(gè)dict類型參數(shù)助币,該字典是后臺(tái)傳遞到模板的參數(shù)浪听,鍵為參數(shù)名,在模板中使用{{參數(shù)名}}來(lái)直接使用
修改后的index函數(shù):
def index(request):
return render(request,"index.html",{'hello':"hello!"})
修改后的HTML文件:
<body>
<h1>{{ hello }}</h1>
</body>
注意:Django查找templates的順序是按照INSTALLED_APPS中的添加順序眉菱,如果兩個(gè)應(yīng)用的模板文件名稱相同迹栓,就會(huì)造成沖突,無(wú)法達(dá)到想要的效果
解決方案:
在APP的templates目錄下創(chuàng)建以APP 為名稱的目錄俭缓,將模板文件放入其中