真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

個(gè)人站點(diǎn)頁(yè)面搭建和側(cè)邊欄展示功能

展示個(gè)人站點(diǎn)頁(yè)面

前端代碼:和首頁(yè)文章展示基本一樣:

創(chuàng)新互聯(lián)公司服務(wù)電話:18982081108,為您提供成都網(wǎng)站建設(shè)網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù),創(chuàng)新互聯(lián)公司網(wǎng)頁(yè)制作領(lǐng)域十年,包括成都餐廳設(shè)計(jì)等多個(gè)方面擁有多年的網(wǎng)站推廣經(jīng)驗(yàn),選擇創(chuàng)新互聯(lián)公司,為網(wǎng)站錦上添花!

{% for article in article_list %}
{% endfor %}

后端代碼:在url中需要手動(dòng)輸入不同的用戶名,所以需要視圖函數(shù)需要輸入?yún)?shù)username

def site(request,username):
    # 1.先查出手動(dòng)輸入的username對(duì)應(yīng)的用戶對(duì)象
    user_obj = models.UserInfo.objects.filter(username=username).first()
    # 2.如果輸入的用戶名不存在,則報(bào)錯(cuò)跳轉(zhuǎn)404頁(yè)面
    if not user_obj:
        return render(request,'error.html')
    # 3.查詢出個(gè)人用戶對(duì)應(yīng)的個(gè)人站點(diǎn)
    blog = user_obj.blog
    # 4.根據(jù)個(gè)人站點(diǎn)查出對(duì)應(yīng)的文章
    article_list = models.Article.objects.filter(blog=blog)
    return render(request,'site.html',locals())

側(cè)邊欄展示功能

補(bǔ)充小知識(shí)點(diǎn):個(gè)人站點(diǎn)樣式搭建

對(duì)于不同個(gè)人站點(diǎn)需要不同樣式時(shí),我們可以在media文件夾下新建一個(gè)css文件夾,里面可以存放用戶上傳的不同css文件,再在個(gè)人站點(diǎn)html頁(yè)面下面添加對(duì)應(yīng)站點(diǎn)的css文件!!

側(cè)邊欄展示了三大版塊,分別是:文章分類、文章標(biāo)簽、日期歸檔!

文章分類和文章標(biāo)簽的書寫和渲染,只要將其在后端對(duì)應(yīng)查詢出來,如何傳入前端頁(yè)面,交給模板頁(yè)面渲染即可!
后端:

    # 5.側(cè)邊欄數(shù)據(jù)傳入
    # (1)查詢出當(dāng)前用戶所有的分類及分類下的文章數(shù)
    category_list = models.Category.objects.filter(blog=blog).annotate(count_num=Count('article__pk')).values_list('name','count_num')
    # print(category_list)  格式為:
    # (2)查詢出當(dāng)前用戶的所有標(biāo)簽和標(biāo)簽下的文章數(shù)
    tag_list = models.Tag.objects.filter(blog=blog).annotate(count_num=Count('article__pk')).values_list('name','count_num')
    # print(tag_list) 格式為:

前端:

            

文章分類

{% for category in category_list %}

{{ category.0 }}({{ category.1 }})

{% endfor %}

關(guān)于日期歸檔版塊的渲染:

我們?cè)趧?chuàng)建文章的時(shí)候,create_time字段是包含年月日時(shí)分秒的,而我們進(jìn)行日期歸檔的時(shí)候往往是按照年月進(jìn)行歸檔的!

所有,這時(shí)候就需要用到django官方提供的一個(gè)TruncMonth模塊

它的功能是能夠幫您在生成一個(gè)臨時(shí)的查詢表,新增了一個(gè)年月的字段,如何按這個(gè)字段進(jìn)行分組查詢

from django.db.models.functions import TruncMonth

后端:
    # (3)按照年月統(tǒng)計(jì)出當(dāng)前用戶所有的文章
    data_list = models.Article.objects.filter(blog=blog).annotate(month=TruncMonth('create_time')).values('month').annotate(count_num=Count('pk')).values('month','count_num')
    # print(data_list)
# 這句查詢語(yǔ)句的意思是先查出當(dāng)前用戶,然后利用TruncMonth對(duì)create_time進(jìn)行過濾新增一個(gè)month年月字段,然后.values按照month字段分組,統(tǒng)計(jì)出當(dāng)前文章的個(gè)數(shù),最后取值!

前端:
            

日期歸檔

{% for data in data_list %}

{{ data.month|date:'Y年m月' }}({{ data.count_num }})

{% endfor %}

網(wǎng)頁(yè)名稱:個(gè)人站點(diǎn)頁(yè)面搭建和側(cè)邊欄展示功能
網(wǎng)頁(yè)網(wǎng)址:http://weahome.cn/article/dsogcjd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部