0


APP优化及积分榜进阶下篇【MUI+Flask+MongoDB】

文章目录

👨‍💻作者简介: 大家好,我是上进小菜猪。内蒙古科技大学,大二计科。技术很菜但不放弃,努力做全栈。 热爱开发,开发软件,开发网站,开发各种东西。🛳️
🛳️个人主页: 上进小菜猪的博客
📗系列专栏:本文写在《APP开发从0到1》专栏 ✉️如果文章知识点有错误的地方,请指正! 和大家一起学习一起进步🎈
🔥如果觉得博主的文章还不错的话,请👍三连+关注支持👍一下博主哦

一,前言

接上篇。上篇提到:
今天又有一个小需求:如下:排行榜可以查看班级排名。
需要解决的问题:
1,注册时候需要增加班级属性。
2,数据库需要一个小的改变。
3,为了友好性,我在个人积分榜增加了段位的显示。非常的友好。
4,排行榜增加班级排名。

而我就写了前三个需求,今天写一下第四个需求。

二,后端——班级排名

首先,定义一个sum变量,里面放mongo表的所有数据。

list_clss=[]sum= db.mongo.find()

定义一个空的list_clss列表。
目的:放我们遍历出来的班级值。

foriin sum:
        sum_fries.append(i)
        if(i['class'] not in list_clss):
            list_clss.append(i['class'])

上述代码块解释如下:
我们循环遍历sum。
然后sum_fries是另外存储一个sum表内容(相当于复制一份)。
加一个遍历存放条件。如果,现在遍历到的值。在list_clss列表里没有就追加进去,如果。有的话,不追加。
实现功能:
去重功能,把现在注册的用户班级提取处理,方便后续操作。

list_clss_sum=[]list_clss_people=[]

上述代码块解释如下:定义两个空的列表。
一个是放班级总积分,另一个是放班级人数,已列表的方法存储。
在这里插入图片描述
上述代码块解释如下:获取列表长度,循环,累加目标班级下的人的目前积分,存储到对应的sum列表里。
人数同理,每次找到目标,自增一。
str(list_clss[j])==str(ii[‘class’]),这个为筛选条件。

forjjin range(0,len(list_clss)):

下面都是对mongodb数据的操作问题,如下:
在这里插入图片描述
把我们的字典集准备好。

if(find==None):
    db.classdb.insert_one(classdb)
if(find!=None and find_again==None):
    db.classdb.update_one(
        class_find,
        {'$set':class_again
         })

上述代码块解释如下:
情况一:如果在班级数据里没有找到现在这条内容的话,执行添加操作,如上代码的find==none。
情况二:如果目标已经在班级数据库里,但是不完全一样,我们需要执行更新mongodb数据库的操作。

after_find=db.classdb.find({}).sort([("average", -1)])

最后,如上代码,我们使用mongodb的排序功能,已平均分为目标,按大到小的顺序排序。

append=[]foriin after_find:
        append.append(i)
    print(append)

然后写一个遍历,把排序后的数据库目标值,一条一条的追加到append里。后续传递给前端,实现班级排名的功能要求。

三,成果展示

在这里插入图片描述
最后。MUI镇文!
在这里插入图片描述

标签: MUI flask monggodb

本文转载自: https://blog.csdn.net/weixin_52908342/article/details/124334701
版权归原作者 上进小菜猪 所有, 如有侵权,请联系我们删除。

“APP优化及积分榜进阶下篇【MUI+Flask+MongoDB】”的评论:

还没有评论