Django Blog|056 添加博客詳情頁視圖,顯示博客詳情
大家好,我是老表,這個系列將會更新我編寫,項目的學習筆記,也是后面更新的一個重點,希望個人博客頁面可以早點和大家見面~歡迎大家點贊、留言支持。
Django Blog|01 創(chuàng)建環(huán)境和項目
Django Blog|02 創(chuàng)建admin賬戶&settings.py介紹
Django Blog|03 創(chuàng)建一個blog app和Article模型
Django Blog|04 創(chuàng)建blog視圖和完成MVT框架開發(fā)
在上一節(jié),我們成功的在博客頁面顯示了博客列表,這一節(jié),我們將實現(xiàn)博客詳情頁的顯示,當然現(xiàn)在的博客頁面十分簡陋,先實現(xiàn)基礎邏輯,了解清楚項目開發(fā)路徑,后面優(yōu)化前端顯示就會輕松很多。
首先我們需要添加一個新的視圖ArticleDetailView,我們打開blog/views.py添加下面代碼即可,
class?ArticleDetailView(DetailView):
????model?=?Article
????template_name?=?'article_detial.html'
這里ArticleDetailView類繼承自DetailView,這樣我們就可以輕松的對單個文章進行操作了。
添加好視圖后,我們在templates中新建一個article_detial.html文件,用來展示文章詳情頁面內(nèi)容。
<title>老表的博客title>
<h1>{{article.title}}h1>
<span>作者:{{article.author}}span>
<hr/>
<blockquote?style="margin:0?0?24px;background:#eef0f4;border-left:8px?solid?#dddfe4;">
????{{article.summary}}
blockquote>
<div>
????<p>{{article.content}}p>
div>
簡單展示文章內(nèi)容,這里我們直接利用article對象即可,因為DetialView類會幫我們解析出來,前端顯示新增了短語顯示標簽,分隔線,塊引用標簽,主要用做引用樣式制作,并設置了style(標簽樣式,這里設置了背景顏色和左邊界寬和顏色),另外
塊級元素,用作內(nèi)容分隔。
設置好這些,我們需要配置下路由,打開blog/urls.py,添加一句
from?django.urls?import?path
from?blog?import?views
urlpatterns?=?[
????#?第一個參數(shù):路由地址
????#?第二個參數(shù):視圖函數(shù),直接通過views調(diào)用即可,要加上as_view
????#?第三個參數(shù):路由名
????path('',?views.HomeView.as_view(),?name='home'),
????#??pk表示文章的編號,系統(tǒng)自帶的主鍵
????path('article/' ,?views.ArticleDetailView.as_view(),?name='detial'),
????
]
路由配置好了,還有一個地方我們需要修改下,就是博客主頁面,我們需要給文章列表加上文字鏈接,這樣我們點擊對應的文章就可以跳轉(zhuǎn)到對應文章的詳情頁面了,打開templates/home.html
<title>老表的博客title>
<h1>博客列表h1>
<ul>
{%?for?article?in?object_list?%}
????<li>
????????<a?href="{%?url?'detial'?article.pk?%}">{{article.title}}?-?{{article.author}}a>br>
????????{{article.summary}}
????li>
{%?endfor?%}
ul>
主要修改是給標題作者添加了一個a標簽,設置了超鏈接,通過Django模版解析,設置為路由到名為detial的路由地址去,并且有一個值為article.pk,即文章id。
都設置好后我們就可以運行程序看效果啦~
感覺還行,下一步,我們就來優(yōu)化頁面吧~
歡迎大家點贊、在看、轉(zhuǎn)發(fā)支持,點擊在看,下次可以第一時間收到公眾號推文~
本文為付費專欄,每周更新1-2篇,利用Django帶大家一起實現(xiàn)個人博客,最后也會上線。
如果是對Django感興趣的初學者可以購買,如果你對Django已經(jīng)有所了解了,那我不建議你付費,你可以選擇后面你感興趣的、更深層次的章節(jié)進行付費,如果需要的話。
閱讀到這里的都是真想學習Django的學習者,我為大家準備了一個Django學習交流群(付費,目前直接購買本系列任意一篇文章即可加入),加入方式如下:
