django之文章最終頁
阿新 • • 發佈:2018-04-20
python文章最終頁,就是點擊鏈接標題後,顯示文章的具體內容
從上一篇博文,我們已經做好個人主頁的篩選,下面是通過點擊篩選後的文章,顯示文章最終頁面
url設置如下:
從上一篇博文,我們已經做好個人主頁的篩選,下面是通過點擊篩選後的文章,顯示文章最終頁面
url設置如下:
url(r‘^(?P<site>\w+)/(?P<nid>\d+).html$‘, views.article),
之所以是這個url路由是,前端home頁面配置錄入下的title,a標簽傳遞參數的時候就傳遞了2個參數
<div> {% for article in article_list %} <div> <a href="/{{ blog.site }}/{{ article.nid }}.html">{{ article.title }}</a> <div>{{ article.summary }}</div> </div> {% endfor %} </div>
後臺的代碼
def article(request,site,nid): blog=models.Blog.objects.filter(site=site).first() if not blog: return redirect(‘/‘) #分類 category_list = models.Article.objects.filter(blog=blog).values(‘category_id‘,‘category__title‘).annotate(ct=Count(‘nid‘)) #標簽 tag_list = models.Article2Tag.objects.filter(article__blog=blog).values(‘tag_id‘,‘tag__title‘).annotate(ct=Count(‘id‘)) #時間 date_list = models.Article.objects.filter(blog=blog).extra( select={‘ctime‘: "strftime(‘%%Y-%%m‘,create_time)"}).values(‘ctime‘).annotate(ct=Count(‘nid‘) ) #文章列表 obj = models.Article.objects.filter(blog=blog,nid=nid).first() return render( request, ‘article.html‘, { ‘blog‘:blog, ‘category_list‘:category_list, ‘tag_list‘:tag_list, ‘date_list‘:date_list, ‘obj‘:obj, } )
前端頁面代碼
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="/static/css/theme/{{ blog.theme }}.css"> </head> <body> <div>{{ blog.title }}--{{ blog.user.nickname }}</div> <div class="c1"> <h3>文章分類</h3> <ul> {% for category in category_list %} <li><a href="/{{ blog.site }}/category/{{ category.category_id }}">{{ category.category__title }}({{ category.ct }})</a></li> {% endfor %} </ul> </div> <div class="c2"> <h3>標簽分類</h3> <ul> {% for tag in tag_list %} <li><a href="/{{ blog.site }}/tag/{{ tag.tag_id }}">{{ tag.tag__title }}({{ tag.ct }})</a></li> {% endfor %} </ul> </div> <div> <h3>時間標簽</h3> <ul> {% for date in date_list %} <li><a href="/{{ blog.site }}/date/{{ date.ctime }}">{{ date.ctime }}({{ date.ct }})</a></li> {% endfor %} </ul> </div> <div> {% for article in article_list %} <div> <a href="/{{ blog.site }}/{{ article.id }}">{{ article.title }}</a> {# <div>{{ article.summary }}</div>#} </div> {% endfor %} </div> <div> <a href="">{{ obj.title }}</a> <br> {{ obj.articledetail.content|safe }} </div> </body> </html>
結果
django之文章最終頁