核心邏輯:在url裡加入正則,匹配分類、標籤、年月日和其後面的引數,在檢視函式接收這些引數,然後進行過濾。
urls.py
#個人站點的跳轉
re_path(r'
^(?p\w+)/(?ptag|category|archive)/(?p.*)/$
', views.home_site),
#個人站點
re_path(r'
^(?p\w+)/$
', views.home_site, name='
home_site
'),
home_site.py
def home_site(request, username, **kwargs):"""個人站點檢視函式
:param request:
:return:
"""user = userinfo.objects.filter(username=username).first()
#判斷使用者是否存在
ifnot
user:
return render(request, '
not_found.html')
article_list = models.article.objects.filter(user=user)
ifkwargs:
condition = kwargs.get('
condition')
param = kwargs.get('
param')
if condition == '
category':
article_list = article_list.filter(category__title=param)
elif condition == '
tag'
: article_list = article_list.filter(tags__title=param)
else
: year, month = param.split('-'
) article_list = article_list.filter(created_time__year=year, created_time__month=month)
#查詢當前站點
blog =user.blog
#獲取當前使用者或者當前站點對應的所有文章
#查詢當前站點的每乙個分類名稱以及對應的文章數
category_list = models.category.objects.filter(blog=blog).values('pk'
).annotate(
count=count('
article__title
')).values_list(
'title
', '
count')
#查詢當前站點的每乙個標籤名稱以及對應的文章數
tag_list = models.tag.objects.filter(blog=blog).values('
pk').annotate(count=count('
article
')).values_list(
'title
', '
count')
#查詢當前站點的每乙個年月名稱以及對應的文章數
date_list = models.article.objects.filter(user=user).annotate(month=truncmonth('
created_time
')).values_list(
'month
').annotate(
count=count('
nid'
)).values_list(
'month
', '
count')
context =
return render(request, '
home_site.html
', context=context)
home_site.html
"en">class="
header
">
class="
header_content
">
class="
title
">
}""class="
backend
">管理
class="
container main_content
">
class="
row">
class="
col-md-3
">
class="
panel panel-warning
">
class="
panel-heading
">我的標籤
class="
panel-body
">
"/}/tag/}
">}(})
class="
panel panel-danger
">
class="
panel-heading
">隨筆分類
class="
panel-body
">
"/}/category/}
">}(})
class="
panel panel-success
">
class="
panel-heading
">隨筆歸檔
class="
panel-body
">
"/}/archive/}
">}
(})class="
col-md-9
">
class="
article_list
">
class="
article_item clearfix
">
"">}
class="
article_desc
">}
class="
small pub_info pull-right
">
發布於}
class="
glyphicon glyphicon-comment
">
class="
glyphicon glyphicon-thumbs-up
">
點讚}
個人部落格站點推薦(三)
部落格日漸落寞,更新者越來越少,但是留下的很多都是精華,就像我之前推薦的那些部落格一樣。mactalk賣桃者,池建強,曾經任職錘子科技,現極客時間創始人。部落格結合科技與人文,值得一看。著有 mactalk 人生元程式設計 mactak 跨越邊界 四火的嘮叨,西雅圖程式設計師一枚,技術,管理,成長,...
個人部落格站點推薦(二)
在前幾篇文章中,推薦了一些個人站點,看效果還不錯。繼續再推薦一些,希望對看到的朋友有些幫助。1.陳皓,網名左耳朵耗子,這裡有技術和思考的文章,作者在極客時間也有專欄,這裡一直也在更新。從這裡收穫了很多。2.雲風大牛的技術部落格,重點於技術文章,偶爾也有其他型別的思考,一直在更新。3.楊文博的部落格,...
查詢個人站點的文章 分類和標籤查詢
urls.py re path p w views.home site,name home site home site.py def home site request,username 個人站點檢視函式 param request return user userinfo.objects.fil...