摘要:文章瀏覽量是所有社交類網(wǎng)站所必備的數(shù)據(jù),足以顯示其重要性了。總結(jié)本章完成了簡(jiǎn)單的統(tǒng)計(jì)瀏覽量的功能,并且在前后端中對(duì)用戶的身份進(jìn)行了驗(yàn)證。下一章學(xué)習(xí)與瀏覽量緊密相關(guān)的功能查詢最熱文章。
文章瀏覽量是所有社交類網(wǎng)站所必備的數(shù)據(jù),足以顯示其重要性了。
博主可以通過(guò)瀏覽量來(lái)評(píng)估某篇文章的受歡迎程度,讀者也能夠通過(guò)瀏覽量來(lái)篩選質(zhì)量更高的文章。
然而,準(zhǔn)確統(tǒng)計(jì)瀏覽量并不簡(jiǎn)單:
某些類型的請(qǐng)求不應(yīng)該統(tǒng)計(jì)為瀏覽量,比如作者自己的瀏覽或編輯文章之后的重定向請(qǐng)求;
由于用戶眾多,瀏覽量的數(shù)據(jù)時(shí)刻都在快速更新,會(huì)給數(shù)據(jù)庫(kù)帶來(lái)很大的壓力。因此很多大型網(wǎng)站都會(huì)使用如Redis這樣的讀寫速度非常快的內(nèi)存數(shù)據(jù)庫(kù)輔助存儲(chǔ)。
因?yàn)槲覀兊捻?xiàng)目是博客網(wǎng)站,粗略統(tǒng)計(jì)就可以了,也沒(méi)有那么大的用戶壓力,所以設(shè)計(jì)就簡(jiǎn)單得多了。
模型瀏覽量作為每篇博文都有的數(shù)據(jù),需要一個(gè)字段來(lái)存儲(chǔ)。
因此修改文章的模型:
article/models.py ... class ArticlePost(models.Model): ... total_views = models.PositiveIntegerField(default=0) ...
PositiveIntegerField是用于存儲(chǔ)正整數(shù)的字段
default=0設(shè)定初始值從0開始
修改完數(shù)據(jù)庫(kù)別忘了要數(shù)據(jù)遷移,否則更改不會(huì)生效。
由于新字段設(shè)置了初始值,遷移會(huì)很順暢:
(env) E:django_projectmy_blog>python manage.py makemigrations Migrations for "article": articlemigrations