實現個人站點詳情頁的點讚功能

2022-09-16 09:24:11 字數 2109 閱讀 2730

邏輯:

做出樣式(從複製的)

用js判斷點選的是贊還是反對按鈕

判斷使用者是否已經點過贊或反對,如果沒有點過:點讚表建立資料,判斷使用者是點的贊還是點的反對,增加相應的資料。

文章表的贊或反對加1

如果點過:返回錯誤狀態

返回布林值(true代表用使用者點的贊,false代表使用者點的反對)

ajax接收資料,如果是第一次點讚或反對,用js給響應按鈕+1

如果已經點過,提示相應資訊。

html

<

div

class

="clearfix"

>

<

div

id="div_digg"

>

<

div

class

="diggit action"

>

<

span

class

="diggnum"

id="digg_count"

>}

span

>

div>

<

div

class

="buryit action"

>

<

span

class

="burynum"

id="bury_count"

>}

span

>

div>

<

div

class

="clear"

>

div>

<

div

class

="diggword"

id="digg_tips"

>

div>

div>

div>

div>

css

#div_digg .diggit .diggnum #div_digg .diggnum .buryit .clear .diggword

js

//

點讚請求

$('#div_digg .action').click(function

() }",

},success:

function

(data)

else

, 1000)}}

})});

py

# urls.py

# 點讚

path('digg/', views.digg),

views.py

# 點讚

def digg(request):

article_id = request.post.get('article_id')

is_up = json.loads(request.post.get('is_up'))

user_id =request.user.pk

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

response =

ifnot obj:

models.articleupdown.objects.create(

user_id=user_id,

article_id=article_id,

is_up=is_up,

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

ifis_up:

article_obj.update(up_count=f('up_count') + 1)

else

: article_obj.update(down_count=f('down_count') + 1)

else

: response['status'] =false

response['handled'] =obj.is_up

return jsonresponse(response)

電商詳情頁的一般實現

實現方式 小 頁面靜態化。可以為每個商品生成乙個靜態頁面,訪問時直接訪問商品的靜態頁面 內容管理系統 缺點 當商品量很大的時候,無法支撐,商品資訊一旦改動,都必須重新生成html頁面 大 將商品資料儲存於多級快取中 ehcache redis 商品的html模板存放於前端的web伺服器中 nginx...

jquery ajax之點贊功能的實現

之前,一直想用一下ajax的技術到專案中,看他到底好處在 為什麼會被這麼多人所推崇。還記得之前也是看過jquery,但是現在回過來想想,其實能夠記起來的東西很少,只有將知識應用起來,可能才會記憶深刻吧!今年開始我逐漸開始積累起自己的一些 和 新知識,這樣的話到以後要用的時候可以作為參考之用。func...

vue個人部落格開發記錄 實現文章點讚功能(三)

1.後端 1.1 增加文章中點贊對應的規則const articleschema monoogse.schema 省略 新增點讚對應的規則,關聯user 使用者表 praise 1.2 增加對應的介面 點讚介面 router.post praise async req,res req.body if...