Django開發部落格 2 模板的使用

2021-08-02 04:50:27 字數 2183 閱讀 4859

在上一章節中我們使用 django.http.httpresponse() 來輸出 「hello blog!」。該方式將資料與檢視混合在一起,不符合 django 的 mvc 思想。

本章節我們將為大家詳細介紹 django 模板的應用,模板是乙個文字,用於分離文件的表現形式和內容。

接著上一章,在myblog中建立乙個templates目錄,隨後建立乙個myblog.html檔案,總體結構目錄如下

圖2 templates增加後的目錄

使用模板

在views中返回乙個render()用於提交響應資料

修改views

並且為了後續方便,修改函式名為index

def

index

(request):

return render(request, 'myblog.html')

其中render()函式支援乙個dict型別的引數,該字典是後台傳遞到模板的引數,鍵為引數名,在模板中使用}來使用

def

index

(request):

return render(request, 'myblog.html',)

同時在模板檔案myblog.html中引用這個引數

lang="en">

charset="utf-8">

titletitle>

head>

}h1>

body>

html>

執行程式可能有個錯誤是

django 找不到模版報錯」 django.template.exceptions.templatedoesnotexist: index.html」

解決辦法就是在settings中修改以下**:

templates = [,},

]

假如你當前目錄下有兩個應用程式,此時並且模板的.html檔名相同此時就會有一些問題

同樣按照以上步驟建立乙個myblog_test應用,為了區別對待

myblog.views內容修改為:

def

index

(request):

return render(request, 'myblog.html',)

別忘了新增到blog的urls中和settings中新增應用

urlpatterns = [

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

url(r'^blog/$', include('myblog.urls')),

url(r'^blog_test/$', include('myblog_test.urls')),

]

此時120.0.0.1:8000/blog_test應該顯示myblog_test!!!

但是最終沒有顯示myblog_test!!!,兩者都顯示了myblog!!!

這裡有兩種解決辦法,其中之一就是上面settings中修改的路徑』dirs』

第二個就是在templates目錄下建立乙個目錄myblog目錄,將myblog.html檔案移動到該目錄下

此時目錄結構如下圖

請忽略index.html。。。

隨之要跟著修改views檔案

def

index

(request):

return render(request, 'myblog/myblog.html',)

同理myblog_test也要這樣修改

然後執行程式可以看到

/blog/顯示myblog!!!

/blog_test/顯示myblog_test!!!

django 開發部落格2

在models.py裡建乙個文章表,新增 如下圖 使用imagefield需要安裝pillow,pip install pillow就可以了,處理要安裝pillow,django模型中的imagefield和filefield的upload to選項是必填項,所有要存放到指定的路徑下,同時還要配置m...

Django開發部落格 RESTful

1.介紹 restful api是指符合rest風格的web介面 具體來說就是將所有被請求的實體當作資源,通過http自帶的方法 get,head,post,put,delete 來進行對應的增刪改查等操作。比如 獲取使用者列表 get user 獲取id為1的使用者資源 get user 1 建立...

django起步 2 模板

1.後台將資料傳到前台 helloworld helloworld view.py 檔案 from django.shortcuts import render def hello request context context hello hello world return render req...