第 8 部分:从头开始开发 Python Flask 和 MySQL Web 应用程序

在本教程系列的前一部分中,我们用不同用户创建的愿望填充了应用程序的仪表板页面。我们还为每个愿望附加了一个“点赞”按钮,以便用户可以点赞特定的愿望。

在本系列的这一部分中,我们将了解如何切换喜欢/不喜欢显示并显示特定愿望收到的点赞总数。

开始使用

我们首先从 GitHub 克隆本教程的前一部分。

git clone https://github.com/jay3dec/PythonFlaskMySQLApp_Part7.git

登录后复制

克隆源代码后,导航到项目目录并启动 Web 服务器。

cd PythonFlaskMySQLApp_Part7python app.py

登录后复制

将浏览器指向 http://localhost:5002/,应用程序应该正在运行。

立即学习“Python免费学习笔记(深入)”;

添加点赞数

我们首先将实现一项功能来显示特定愿望已获得的总计数。当添加新愿望时,我们将在 tbl_likes 表中添加一个条目。因此,修改 MySQL 存储过程 sp_addWish 以将条目添加到 tbl_likes 表中。

DELIMITER $$CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_addWish`(    IN p_title varchar(45),IN p_description varchar(1000),IN p_user_id bigint,IN p_file_path varchar(200),IN p_is_private int,IN p_is_done int)BEGINinsert into tbl_wish(wish_title,wish_description,wish_user_id,wish_date,wish_file_path,wish_private,wish_accomplished)values(p_title,p_description,p_user_id,NOW(),p_file_path,p_is_private,p_is_done);SET @last_id = LAST_INSERT_ID();insert into tbl_likes(wish_id,user_id,wish_like)values(@last_id,p_user_id,0);END$$DELIMITER ;

登录后复制

如上面的存储过程代码所示,将愿望插入到 tbl_wish 表后,我们获取了最后插入的 ID 并将数据插入到 tbl_likes 表。

接下来,我们需要修改 sp_GetAllWishes 存储过程以包含每个愿望获得的点赞数。我们将使用 MySQL 函数来获取愿望总数。因此,创建一个名为 getSum 的函数,它将获取愿望 ID 并返回喜欢的总数。

DELIMITER $$CREATE DEFINER=`root`@`localhost` FUNCTION `getSum`(    p_wish_id int) RETURNS int(11)BEGINselect sum(wish_like) into @sm from tbl_likes where wish_id = p_wish_id;RETURN @sm;END$$DELIMITER ;

登录后复制

现在,在存储过程 sp_GetAllWishes 中调用上面名为 getSum 的 MySQL 函数来获取每个愿望的点赞总数。

DELIMITER $$CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_GetAllWishes`()BEGIN    select wish_id,wish_title,wish_description,wish_file_path,getSum(wish_id)from tbl_wish where wish_private = 0;END$$DELIMITER ;

登录后复制

修改 getAllWishes Python 方法以包含点赞计数。在迭代从 MySQL 存储过程返回的结果时,包括如下所示的 like 字段:

for wish in result:    wish_dict = {        'Id': wish[0],        'Title': wish[1],        'Description': wish[2],        'FilePath': wish[3],        'Like':wish[4]}    wishes_dict.append(wish_dict)

登录后复制

修改 CreateThumb JavaScript 方法以创建一个额外的范围,我们将用它来显示点赞计数。

var likeSpan = $('').attr('aria-hidden','true').html(' '+like+' like(s)');

登录后复制

并将 likeSpan 附加到父段落 p。这是修改后的 CreateThumb JavaScript 函数。

function CreateThumb(id, title, desc, filepath, like) {    var mainDiv = $('
').attr('class', 'col-sm-4 col-md-4'); var thumbNail = $('
').attr('class', 'thumbnail'); var img = $('第 8 部分:从头开始开发 Python Flask 和 MySQL Web 应用程序').attr({ 'src': filepath, 'data-holder-rendered': true, 'style': 'height: 150px; width: 150px; display: block' }); var caption = $('
').attr('class', 'caption'); var title = $('

').text(title); var desc = $('

').text(desc); var p = $('

'); var btn = $('

以上就是第 8 部分:从头开始开发 Python Flask 和 MySQL Web 应用程序的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2225795.html

(0)
上一篇 2025年2月26日 11:24:28
下一篇 2025年2月26日 11:24:41

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论