在上一章節中我們使用 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...