首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django过滤用户点赞帖子

Django是一个基于Python的开源Web应用框架,它提供了一套完整的开发工具和功能,用于快速构建高效、安全的Web应用程序。

在Django中,过滤用户点赞帖子可以通过以下步骤实现:

  1. 定义模型:首先,在Django的模型中定义用户和帖子的关系。可以创建一个名为User的模型来表示用户,以及一个名为Post的模型来表示帖子。在Post模型中,可以添加一个字段来表示点赞数。
代码语言:txt
复制
from django.db import models
from django.contrib.auth.models import User

class Post(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    likes = models.IntegerField(default=0)
    user = models.ForeignKey(User, on_delete=models.CASCADE)
  1. 创建视图:接下来,创建一个视图函数来处理用户点赞帖子的请求。在视图函数中,可以使用Django的查询API来过滤用户和帖子,并更新点赞数。
代码语言:txt
复制
from django.shortcuts import render, get_object_or_404
from django.http import JsonResponse

def like_post(request, post_id):
    post = get_object_or_404(Post, id=post_id)
    
    if request.user.is_authenticated:
        if post.user != request.user:  # 确保用户不能给自己的帖子点赞
            post.likes += 1
            post.save()
            return JsonResponse({'status': 'success', 'message': '点赞成功'})
        else:
            return JsonResponse({'status': 'error', 'message': '不能给自己的帖子点赞'})
    else:
        return JsonResponse({'status': 'error', 'message': '请先登录'})
  1. 配置URL:将视图函数映射到URL,以便能够通过特定的URL访问点赞功能。
代码语言:txt
复制
from django.urls import path
from .views import like_post

urlpatterns = [
    path('post/<int:post_id>/like/', like_post, name='like_post'),
]
  1. 更新模板:在帖子的展示页面中,添加一个点赞按钮,并使用JavaScript发送异步请求来触发点赞功能。
代码语言:txt
复制
<!-- post.html -->
{% extends 'base.html' %}

{% block content %}
  <h1>{{ post.title }}</h1>
  <p>{{ post.content }}</p>
  <p>Likes: <span id="likes">{{ post.likes }}</span></p>
  <button id="like-btn">点赞</button>

  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
  <script>
    $(document).ready(function() {
      $('#like-btn').click(function() {
        var post_id = {{ post.id }};
        $.ajax({
          url: '/post/' + post_id + '/like/',
          type: 'POST',
          success: function(response) {
            if (response.status === 'success') {
              var likes = parseInt($('#likes').text());
              $('#likes').text(likes + 1);
            }
            alert(response.message);
          }
        });
      });
    });
  </script>
{% endblock %}

通过以上步骤,就可以实现过滤用户点赞帖子的功能。当用户点击点赞按钮时,会发送一个异步请求到like_post视图函数,该函数会检查用户是否已登录,并更新帖子的点赞数。最后,通过JavaScript将点赞数更新到页面上。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云主页:https://cloud.tencent.com/
  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版:https://cloud.tencent.com/product/cdb-for-mysql
  • 人工智能平台(AI Lab):https://cloud.tencent.com/product/ailab
  • 云存储(COS):https://cloud.tencent.com/product/cos
  • 区块链服务(BCS):https://cloud.tencent.com/product/bcs
  • 腾讯云元宇宙:https://cloud.tencent.com/solution/virtual-universe
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

“夸夸机器人”App来了:变身百万粉丝大V,48万人给你的帖子

来源 | mashable 译者 | Kolen 出品 | AI科技大本营(ID:rgznai100) 我在Botnet上的第一条帖子获得了48万个。...一款全新的社交媒体风格的应用为用户提供了生活在一个奇特网络虚拟世界的机会。在这个世界里,你将拥有数以百万计的粉丝,他们热烈追随你,并且为你每一次发帖而痴狂。...早在2017年,Binky就为无聊的用户提供了浏览无数虚假社交帖子的机会。...Botnet将这一想法发扬光大,并且实际上为你的无聊帖子提供了反馈。重要的是,Chasen告诉Mashable,并不是像Facebook这样的真实社交媒体公司为了获得奇怪数据。...换句话说,你可以随心所欲地发帖子,而且数百万Botnet追随者一定会感谢你。

79320

JAVA自动爬取CSDN用户数据并文章

本文链接:https://blog.csdn.net/luo4105/article/details/87166231 爬取用户 某天,我发现我的文章被某个用户了。...欣喜之下,把那边文章重新校核更改一遍,接着进入这个我的用户看看,结果发现他近期的博客是一些爬虫的实战。我想,我那篇文章,应该是他做的一个小程序批量加载用户信息并给文章。...我觉得这是一个有点意思的事,于是用java实现csdn批量爬取用户名并。...分析一下博文的API,随便打开一篇博客,并,查看浏览器请求日志。...有了这些参数,就可以拼请求了。 获得用户下的ArticleId 为了防止一下子把羊毛褥完了,我这里拿的是每个用户下的第一篇aritcleId,思路是这样的。

80230

解读小程序用户信息授权机制的变动,为官方

7月26日,小程序官方发布了两个新变动,其中一个变动是关于“获取用户信息的授权机制的”,官方对这次变动的概括为: “为改善用户体验,现有小程序获取用户信息的方式将进行升级,开发者需在页面中放置按钮,用户主动点击后才可获取用户的头像昵称等信息...可提高用户授权成功率,同时支持用户多次点击重新授权。” 啥意思呀? 我把重点都标红标粗了,简而言之就是说:以后能通过点击页面某个自定义按钮去触发用户信息授权弹框。...小程序发布之初,好多事情很难面面俱到,有一些事情没想太清楚是情有可原的,像用户获取信息的这个鉴权机制,其实一开始就有一问题,于是无意间会导致目前市面上的小程序没有按照官方所认为是最好的体验方式出现。...所以,你们看到这里,应该知道为啥花叔在文章开头的时候就说了这个变动的意义很大,因为这体现了小程序官方在纠正错误时的态度以及执行力,真心点个。...),将无法通过审核 初次打开小程序就弹框授权用户信息 未处理用户拒绝授权的情况 强制要求用户授权 已经上线的小程序不会受到影响。

2.4K70

用户画像(三)|通过用户对不同文章的不同行为(浏览、、评论、分享)提取用户标签

最近我们对我们平台的用户进行了一个用户标签提取,这中间的主要流程如下图3-1所示: 图3-1 一、梳理做用户画像需要的数据 用户画像是基于业务数据而进行的,如果前期没有考虑好这一,那么在真正实操时会发现做分析需要的数据存在不同的业务表里面...如上图,如果我们要获取的是用户、评论、分享、浏览的数据,那么可以使用AOP把用户做这些请求的数据记录到一个日志里面。...例如: 字段名 字段说明 示例 user_id 用户id 1 operation_type 行为类型 1-、2-评论、3-分享、4-浏览 operation_content_id 内容idt 1 operation_time...、行为类型、文章的关系,计算出每个用户的标签及权重 例如:权重为0.8、评论权重为0.9、分享权重为1.0、浏览权重为0.3。...那就是根据这个用户对哪些文章以何种行为进行了关联,把该文章的标签关联到这个用户上即可,具体的算法我在用户画像(一)|计划制定讲过,大致如下: 3.6、总结 综合上述分析,用户画像的数据模型,可以概括为下面的公式

3.6K100

抓取保存小红书用户主页发布、收藏、过的笔记

假如想分析某个小红书大 v 的数据,即主要分析它主页发布过的笔记、过和收藏过的笔记,来一瞥流量之门,首先就需要将这些数据全部抓取保存到本地。...以华为在小红书的官方账号「华为终端」为例,我们导出它主页的发布和收藏过的帖子(这个账号没有点过别人的帖子或者不可见) 发布过的笔记 首先是「华为终端」发布过的笔记,导出到 csv 一共 1300 余条...,每一条笔记都有笔记链接、笔记标题、笔记时间、笔记内容、ip 属地、话题 tag 列表、艾特用户列表、无水印封面图、无水印笔记内图、视频链接、转发数、数、评论数、收藏数、作者链接、作者昵称等几十个字段...也可以按照转发数、数、评论数、收藏数排序选中几篇爆款笔记分析~ ip 属地几乎都在北京,标题都是华为的新品简介,没啥好分析的。 评论也可以全部下载下来,进行文本分析。...过的笔记 过的笔记也能导出,「华为终端」没有点过笔记或者不可见。

1.1K10

开源社区系统 Echo 超全文档助力春招

包含帖子、评论、私信、系统通知、、关注、搜索、用户设置、数据统计等模块。...) 「评论模块」 未登录用户无法使用评论功能 发布对帖子的评论(过滤敏感词),将其存入 MySQL 分页显示评论 发布对评论的回复(过滤敏感词) 权限管理(Spring Security) 「私信模块」...) 私信列表 私信详情 权限管理(Spring Security) 「统一处理 404 / 500 异常」 普通请求异常 异步请求异常 「统一记录日志」 「模块」 未登录用户无法使用相关功能 支持对帖子...、评论/回复 第 1 次,第 2 次取消 首页统计帖子数量 详情页统计帖子和评论/回复的数量 详情页显示当前登录用户状态(过了则显示已) 统计我的获数量 权限管理(Spring...帖子热度计算 每次发生点(给帖子)、评论(给帖子评论)、加精的时候,就将这些帖子信息存入缓存 Redis 中,然后通过分布式的定时任务 Spring Quartz,每隔一段时间就从缓存中取出这些帖子进行计算分数

2.2K20

Redis | 001能做什么?

1、记录帖子数、评论数和点击数(hash); 2、记录用户帖子ID列表(排序),便于快速显示用户帖子列表(zset); 3、记录帖子的标题、摘要、作者和封面信息,用于列表页展示(hash);...4、记录帖子用户ID列表,评论ID列表,用于显示和去重计数(zset); 5、缓存近期热帖内容(帖子内容的空间占用比较大),减少数据库压力(hash); 6、记录帖子的相关文章ID,根据内容推荐相关帖子...(list); 7、如果帖子ID是整数自增的,可以使用Redis来分配帖子ID(计数器); 8、收藏集和帖子之间的关系(zset); 9、记录热榜帖子ID列表、总热榜和分类热榜(zset); 10、缓存用户行为历史...,过滤恶意行为(zset、hash); 安装Redis Redis的安装主要有以下三种方式: 1、使用Docker安装; 2、通过GitHub源码编译; 3、直接安装apt-get install(Ubuntu

98930

Feed设计与实现

玩过知乎的人应该知道,在知乎Feed中,会显示某某关注了某某话题,某某或者赞同了某个回答。广义来讲,这些也算是一种Feed。 本文会先介绍几种不同的Feed设计,让大家对Feed实现有初步的了解。...推方式 推方式,是发生在用户触发行为(发布新的动态,关注某个人,)的时候。在触发时,用户的自身行为会记录到对应的行为表中,其次用户的行为也会记录到自己的粉丝对应动态表中。...触发异步操作,消费者会先读取用户的粉丝列表(uid分表),依次写入到用户的动态表(uid分表)中。 前端读取用户动态Feed,使用过滤条件,读取用户的动态表(关联查询帖子表)。...因为我们的需求是对用户的聚合展示,类似于下图知乎这种。...[这里写图片描述] 本身行为会存储在两种类型的表(以帖子ID的分表,以用户ID的分表)中,如果单纯以拉方式话,会比较难处理的,而且有性能问题。

1.3K61

python+Django+Mysql+协同过滤电影推荐系统简介

该系统为基于协同过滤算法的Django电影推荐系统, 点击跳转 详情介绍如下所示。...基于用户的协同过滤 算法: 协同过滤, 根据用户的打分来进行推荐。从所有打分的用户中找出和当前用户距离最近的n用户,然后从n个用户打分的电影中找15个当前用户未看过的电影。...皮尔森距离公式: 基于物品的协同过滤 计算物品之间的相似度,然后根据相似度来推荐 物品间的共现矩阵,两个物品同时被n个用户购买 物品间的相似度 相似度:共现值/N的值M的值 开根号...推荐值: 相似度评分 根据用户过得商品来寻找相似度推荐。...计算每个过的物品和所有未物品之间的得分。得分=相似度*打分值 得分越高表示越相似。

1.5K22

独立开发 一个社交 APP 的架构分享 (已实现)

帖子与评论的与撤销 分享、收藏、举报、信息分享到微信等平台、删除(帖主)等功能 文章模块 浏览: 内容页纯html,网页浏览 发布: 由管理员通过网页后台编辑发布,形成html标签流 兼容...: 使用x5浏览器内核显示,效果和微信相似,包括视频播放 权限 除了不能被帖子,其他同帖子操作 我的模块(用户信息) 我的背景图片 显示在个人信息页面 点击可以修改,含剪辑 我的消息模块 推送...内容过滤过滤掉某些敏感词,防止色情或其他内容出现 用户位置获取 使用百度地图API 图片部分 选择 张数的限制 模仿了微信的图片选择器,采用GirdView加载,可以多张一起选择...赞成功后再做对应的UI更新,例如图标变颜色等等 布局        采用的布局是 HeaderView + CommentView,HeaderView 用于显示帖子的所有内容含帖子,CommentView...帖子有三种类型,对应三张表,文章独立一张表 一张表 评论一张表 收藏一张表 信息提醒一张表 用户消息的查看与否以及数目在移动端的显示,需要在消息表设置加上是否查看了的字段,可以解决以下几个问题:

4.6K101

剑指 Offer:Redis 的 14 大使用场景!

他回答的不是很好,而且面试官也善意的提醒了一些关键,但是由于他没准备,所以再次失败了。 关于这个问题,我其实在一年前就写过这个答案《Redis 是单线程结构,但为何单线程还能支持高并发?》。...所以,今天我就抽个一时间,根据以前我做电商的经验。分享一下 Redis 的 10 大使用场景。 1、记录帖子或者文章的数、评论数和点击数 (hash)。...2、记录用户帖子 ID 列表 (排序),便于快速显示用户帖子列表 (zset)。 3、记录帖子的标题、摘要、作者和封面信息,用于列表页展示 (hash)。...4、记录帖子用户 ID 列表,评论 ID 列表,用于显示和去重计数 (zset)。 5、缓存近期热帖内容 (帖子内容空间占用比较大),减少数据库压力 (hash)。...9、记录热榜帖子 ID 列表,总热榜和分类热榜 (zset)。 10、缓存用户行为历史,进行恶意行为过滤 (zset,hash)。 11、秒杀,抢购(分布式锁)。 12、会话、热点数据(缓存)。

20710

Echo 项目结构分析

MessageService:Message 相关的业务逻辑 DiscussPostService:DiscussPost 相关的业务逻辑 FollowService:关注相关的业务逻辑 LikeService:相关的业务逻辑...、进入帖子详情页、置顶帖子、加精帖子等 MesaageController:控制 Message 相关的业务流程,比如进行私信列表、发送私信、发送系统通知等 LikeController:控制相关的业务流程...,比如、取消等 FollowController:控制关注相关的业务流程,比如关注、取消关注、进入某个用户的关注列表等 SearchController:控制搜索相关的业务流程,比如进入搜索界面等...session 对象,实现 session any where MailClient:发送激活邮件(用于注册) RedisKeyUtil:生成 Redis 的 key SensitiveFilter:敏感词过滤器...) discuss-detail.html:帖子详情页模板 profile.html:个人主页模板 my-post.html:我的帖子模板 my-reply.html:我的回复页模板 followee-detail.html

1K11

纽约蹭饭手册:怎样利用Python和自动化脚本在纽约吃霸王餐?

我编写的代码可以自动找到图片或视频,制作标题,添加主题标签,标记图片或视频出自哪里,还能过滤垃圾邮件,发帖,关注用户和取消关注,,监控我的收件箱,最重要的是自动向与可能需要促销的餐馆发消息和电子邮件...你可以看到点数量的差异-8200对1000。我需要脚本能够自动过滤掉右边的帖子,并重新分享左边的帖子。 因此,我不能盲目地重新分享我提取到的所有内容。但我又希望这是一个自动化过程。...每个帖子上都有大量的元数据,包括数,标题,发布时间等等。我最初的目的是尝试预测哪些图片会获得最多的。然而,很明显,网红博主自然会获得更多的,所以这不能作为准确的判断依据。...后来我的想法是让响应变量等同于率(即数/粉丝数),并尝试进行预测。但在观察每张图片及其率后,我认为率和图片质量的相关性不大。我不认为那些率高的照片就是高质量照片。...在这一天中,我的帐户有条不紊地关注,取关,并为相关的用户和照片,以使他们以同样的方式与我互动。

1.3K30

纽约蹭饭手册:怎样利用Python和自动化脚本在纽约吃霸王餐?

我编写的代码可以自动找到图片或视频,制作标题,添加主题标签,标记图片或视频出自哪里,还能过滤垃圾邮件,发帖,关注用户和取消关注,,监控我的收件箱,最重要的是自动向与可能需要促销的餐馆发消息和电子邮件...你可以看到点数量的差异-8200对1000。我需要脚本能够自动过滤掉右边的帖子,并重新分享左边的帖子。 因此,我不能盲目地重新分享我提取到的所有内容。但我又希望这是一个自动化过程。...每个帖子上都有大量的元数据,包括数,标题,发布时间等等。我最初的目的是尝试预测哪些图片会获得最多的。然而,很明显,网红博主自然会获得更多的,所以这不能作为准确的判断依据。...后来我的想法是让响应变量等同于率(即数/粉丝数),并尝试进行预测。但在观察每张图片及其率后,我认为率和图片质量的相关性不大。我不认为那些率高的照片就是高质量照片。...在这一天中,我的帐户有条不紊地关注,取关,并为相关的用户和照片,以使他们以同样的方式与我互动。

1.3K60

Redis位图实现签到相关功能

前言 对于我们平时的一些社区应用,如微博,知乎,掘金等应用,评论这类功能是不可或缺的,例如功能我们其实是可以通过 mysql 去做实现的,但是每次都去实时改库可以想象一下当遇到一个热点文章例如...,前段时间大火特火的爆料某艺人日薪多少帖子,这个上千万乃至亿级的量,这个时候我们再去实时改库的话就不那么恰当,今天我们介绍的主角是Redis的位图操作,接下来我们引出正题,来看一下位图是这么做到的;...用户在线状态 统计活跃用户 各种状态值 自定义布隆过滤功能 可以想象一下假如我们要统计一个用户一年的签到记录,签了是 1,没签是 0,要记录 365 天。...业余草日薪高达208w,超过马云》 帖子2(post2): postId:2 postName:《业余草持刀狂追某用户8条街,原因是该用户看文不点用户1(user) id:1001 name:...jedis.setbit(userId, postId, true); //设置帖子 jedis.setbit(String.valueOf(postId

93210
领券