6 部落格系統 點讚功能

2022-02-14 18:04:20 字數 3841 閱讀 6864

article_detail.html

#}#}

class="

article_info

">//文章標題class="

cont

">//文章內容}

//點讚,這一套點讚,再給它們加上樣式//點讚,}

//不要把點讚數寫成1,這樣就寫死了

//踩滅;要給點讚和踩滅同時繫結ajax,同時起個名字action}

base.html

"en

">class="

header

">

class="

content

">

class="

title

">

}""class="

backend

">管理

class="

container

">

class="

row">

class="

col-md-3 menu

" >

class="

col-md-9

">

article_detail.css(點讚樣式的)

.article_info .title

#div_digg.diggit.buryit

.clear

哪個使用者對那篇文章進行了點讚,發ajax請求,發生true or false

home_site.css

*

.header

.header .title

.backend

.pub_info

.menu

views.py

#

點讚import

json

defdigg(request):

print

(request.post)

article_id = request.post.get("

article_id

") #應該傳布林值,反序列化下,而不是字串

is_up = json.loads(request.post.get("

is_up

")) #它拿到的是

字串「true」,傳的時候永遠是乙個真值,要反序列化傳乙個布林值;

#點讚人即當前登入人

點讚————>>>

再次訪問點讚這個頁面時,應該保持這個點讚數。--->>> 在建立點讚記錄的時候同時也要對文章進行更新。

#

點讚import

json

from django.db.models import

fdef

digg(request):

print

(request.post)

article_id = request.post.get("

article_id")

is_up = json.loads(request.post.get("

is_up

")) #

字串的「true」,是乙個布林值

#點讚人即當前登入人

user_id =request.user.pk

ard = models.articleupdown.objects.create(user_id=user_id, article_id=article_id,is_up=is_up)

queryset = models.article.objects.filter(pk=article_id) #拿到這篇文章

ifis_up:

queryset.update(up_count=f("

up_count

")+1)#對這篇文章點讚數進行更新else

點讚import

字串的「true」,是乙個布林值

#點讚人即當前登入人

user_id =request.user.pk

obj = models.articleupdown.objects.filter(user_id=user_id, article_id=

article_id).first() //過濾,使用者對文章做了什麼操作;拿到這個物件。

response= #預設true

ifnot

obj:

ard = models.articleupdown.objects.create(user_id=user_id, article_id=article_id,is_up=is_up)

queryset = models.article.objects.filter(pk=article_id)

ifis_up:

queryset.update(up_count=f("

up_count

")+1)

else

: queryset.update(down_count=f("

down_count

")+1)

else

: response[

"state

"] = false #

true表示你已經贊支援過了,false表已經踩過了

response["

handled

"] = obj.is_up #

字典再加乙個資訊;過濾出的obj拿到is_up

return jsonresponse(response)

article_detail.html

渲染有兩種方式: render的渲染(重新整理頁面)、ajax的dom顯示(區域性重新整理),

view code

ajax 實現點讚功能

原理 1.通過ajax將資料提交到服務端。2.服務端處理並返回結果。jquery的ajax形式如下 ajax 需要提交的資料 success function data if data 2 服務端處理資料 post接受資料 id post id user post user sql update t...

點讚功能與redis

摘要 前言點讚其實是乙個很有意思的功能。基本的設計思路有大致兩種,一種自然是用mysql等資料庫直接落地儲存,另外一種就是利用點讚的業務特徵來扔到redis 或memcache 中,然後離線刷回mysql等。直接寫入mysql直接寫入mysql是最簡單的做法。做兩個表即可,1 post like記錄...

點讚功能與redis

摘要 前言點讚其實是乙個很有意思的功能。基本的設計思路有大致兩種,一種自然是用mysql等資料庫直接落地儲存,另外一種就是利用點讚的業務特徵來扔到redis 或memcache 中,然後離線刷回mysql等。直接寫入mysql直接寫入mysql是最簡單的做法。做兩個表即可,1 post like記錄...