返回顶部
首页 > 资讯 > 后端开发 > Python >如何在Flask中实现数据分组流程详解
  • 131
分享到

如何在Flask中实现数据分组流程详解

Flask数据分组Flask分组数据 2023-05-19 09:05:47 131人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

【数据库模型类】 class ConColumn(db.Model): __tablename__='content_column' id = db.Column(d

数据库模型类】

class ConColumn(db.Model):
    __tablename__='content_column'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50), nullable=False)
    pid = db.Column(db.Integer)
    parent_name = db.Column(db.String(50), nullable=False)
    ......
    # 和文章的关系
    articles = db.relationship('Article', backref="content_article")
class Article(db.Model):
    __tablename__ = 'content_article'
    id = db.Column(db.Integer, primary_key=True)
    #columnId = db.Column(db.String(11), nullable=False)
    photoUrl = db.Column(db.String(300))
    fileUrl = db.Column(db.String(300))
    create_time = db.Column(db.DateTime, default=datetime.now)
    ...... 
    # 外键
    columnId = db.Column(db.Integer, db.ForeignKey("content_column.id"), nullable=False)

想要在flask实现两个表联合查询,得到Article表的id,photoUrl,fileUrl,ConColumn表的name

按照Article的create_time倒排序,该如何写查询?

【循环展示】

目标:同一ConColumn的表的相同的name放在一行显示

2021(ConColumn表的name)

图片1(地址是photoUrl) 图片2(地址是photoUrl) 图片3(地址是photoUrl)

2020(ConColumn表的name)

图片1(地址是photoUrl) 图片2(地址是photoUrl) 图片3(地址是photoUrl)

2016(ConColumn表的name)

图片1(地址是photoUrl) 图片2(地址是photoUrl) 图片3(地址是photoUrl)

数据库中的数据:】

22 11 学而思 0 ... ...

23 15 TSM 0 ... ...

24 16 CATL 0 ... ...

25 16 锦浪 0 ... ...

字段的顺序依次是id,columnId,title,detail,is_top,photoUrl,fileUrl

class Article(db.Model):
    __tablename__ = 'content_article'
    id = db.Column(db.Integer, primary_key=True)
    ... 
    columnId = db.Column(db.Integer, db.ForeignKey("content_column.id"), nullable=False)
  def findarticleGroup(self, column_id):
        children_ids = [11, 12, 13, 14, 15, 16, 17]
        articles = (
            Article.query.join(ConColumn, Article.columnId == ConColumn.id)
            .filter(Article.columnId.in_(children_ids), Article.is_top == 0)
            .with_entities(Article.id,Article.photoUrl, Article.fileUrl, ConColumn.name)
            #.group_by(ConColumn.name)
            .order_by(Article.create_time.desc())
            .all()
        )

对应的sql

SELECT content_article.id AS content_article_id, content_article.`photoUrl` AS `content_article_photoUrl`, content_article.`fileUrl` AS `content_article_fileUrl`, content_column.name AS content_column_name 
FROM content_article INNER JOIN content_column ON content_article.`columnId` = content_column.id 
WHERE content_article.`columnId` IN (11,12,13,14,15,16,17) AND content_article.is_top = 0 
ORDER BY content_article.create_time DESC

logging.getLogger('sqlalchemy.engine').setLevel(logging.DEBUG) # 将日志级别设置为 debug

【问题】

1.设置日志级别的语句是放在这里吗?然后在哪里查看日志

2.这个分组查询中,符合条件的数据应该是4条,但是分组之后的数据把id=25的数据丢失了,不知什么原因。

【回答】

如果没有在控制台中看到 SQL 语句,那可能是你的日志级别设置过高了。这种情况下,重新设置日志级别即可,例如:

可以在控制台中查看 SQL 语句。关于查询中 id=25 的数据丢失的问题,应该是在分组查询中出了问题。请检查一下在查询的时候,是否漏选了某些条件,是否有其他查询导致该数据被过滤了掉等等。可以将 group_by(ConColumn.name) 语句删除掉试试看是否能查到 id=25 的数据,或者将 group_by 语句修改为 group_by(Article.id),以便更好地定位问题。

import logging
logging.basicConfig()
logging.getLogger('sqlalchemy.engine').setLevel(logging.INFO) # 重新设置为 INFO 级别

这样就可以在控制台输出 SQL 语句了。如果仍然无法输出 SQL 语句,可能是数据库配置方面的问题,你可以查看你使用的数据库的文档,了解更多日志输出配置方面的信息。

前端Vue)】

  <div v-for="(item, index) in tableData" :key="index">
      <div class="MasonryList-title">{{ item.parentName }}</div>
      <div class="wrapper">
        <div v-for="(file, index) in item.files" :key="index">
          <div class="child">
            <img
              class="imgStyle"
              :src="file.cateGorieIcon"
              @click="getNewsDetail(file.fileUrl)"
            />
          </div>
        </div>
      </div>

到此这篇关于如何在Flask中实现数据分组流程详解的文章就介绍到这了,更多相关Flask实现数据分组内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 如何在Flask中实现数据分组流程详解

本文链接: https://lsjlt.com/news/212845.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何在Flask中实现数据分组流程详解
    【数据库模型类】 class ConColumn(db.Model): __tablename__='content_column' id = db.Column(d...
    99+
    2023-05-19
    Flask数据分组 Flask分组数据
  • Flask实现swagger在线文档与接口测试流程详解
    目录1.什么是restful2.swagger/openAPI能做什么3.python如何实现swagger4.flasgger的使用案例5.完整代码阅读对象:知道什么是restfu...
    99+
    2024-04-02
  • 如何在PostgreSQL中实现数据清洗和ETL流程
    在PostgreSQL中实现数据清洗和ETL流程通常涉及使用SQL语句和存储过程,以下是一些常用的方法: 数据清洗: 使用SQ...
    99+
    2024-04-02
  • SQL实现数据过滤流程详解
    目录数据准备student 表过滤数据过滤单个值过滤null 值过滤集合BETWEEN IN NOT IN使用通配符过滤数据LIKE使用逻辑操作符组合WHERE子句数据准备student 表 CREATE TAB...
    99+
    2023-01-05
    SQL数据过滤 SQL过滤语句
  • Pandas如何实现分组数据
    这篇文章给大家分享的是有关Pandas如何实现分组数据的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。分组数据这种操作在数据科学家和分析师的日常生活中经常执行。Pandas提供了一个基本的函数来执行数据分组,即Gr...
    99+
    2023-06-27
  • pythonFastApi实现数据表迁移流程详解
    目录啥是数据迁移1.需要新的数据表2.需要对现有表结构进行调整回到ORM迁移手段安装alembic初始化项目修改alembic.ini修改alembic/env.py开始生成迁移工作...
    99+
    2024-04-02
  • 在Teradata中如何实现数据分区
    在Teradata中,数据分区可以通过以下几种方式来实现: 范围分区(Range Partitioning):根据某个列的范围值...
    99+
    2024-04-02
  • Vue封装数字框组件实现流程详解
    目录数量选择组件-基本结构数量选择组件-v-model语法糖数量选择组件-功能实现数量选择组件-基本结构 (1)准备基本结构 <script lang="ts" setup n...
    99+
    2023-05-16
    Vue封装数字框组件 Vue数字输入框
  • Vuereactive函数实现流程详解
    目录1.Reflect2.Proxy的工作原理3.代理Object4.合理的触发响应5.深响应和浅响应6.只读和浅只读7.代理数组1.Reflect   Prox...
    99+
    2023-01-04
    Vue reactive函数 Vue reactive
  • flask-SQLALchemy连接数据库如何实现
    本文小编为大家详细介绍“flask-SQLALchemy连接数据库如何实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“flask-SQLALchemy连接数据库如何实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知...
    99+
    2023-07-02
  • 如何在Flask中使用Flask-WTF实现邮箱验证
    本篇文章为大家展示了如何在Flask中使用Flask-WTF实现邮箱验证,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1、使用Flask-WTF之前,需要安装一个扩展命令pip insta...
    99+
    2023-06-14
  • 如何在PHP中实现大数据分析
    随着互联网和信息技术的发展,数据已经成为了企业和组织重要的生产资源。而如何进行有效的数据分析已经成为企业决策的重要课题。PHP语言作为一种广泛使用的Web编程语言,也可以用来实现大数据分析。本文将介绍如何在PHP中实现大数据分析,包括以下几...
    99+
    2023-05-20
    大数据 分析 PHP
  • 如何在Flask中实现jinja2的继承
    如何在Flask中实现jinja2的继承?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。说明Jinja2中最强大的部分是模板继承。通过模板继承,我们可以创建一个基本(框架)文件,...
    99+
    2023-06-06
  • C语言 数据结构之数组模拟实现顺序表流程详解
    目录线性表和顺序表线性表顺序表静态顺序表动态顺序表代码已经放在Gitee上,需要可以小伙伴可以去看看 用C语言数组模拟实现顺序表 Gitee 线性表和顺序表 线性表 线性表(line...
    99+
    2024-04-02
  • 如何在PHP中实现分布式数组加载?
    PHP是一种流行的服务器端编程语言,它可以用于开发各种Web应用程序。在分布式系统中,有时候需要从不同的节点加载数据,然后将它们合并成一个数组。在这篇文章中,我们将介绍如何在PHP中实现分布式数组加载,以便更好地理解分布式系统的工作原理。 ...
    99+
    2023-08-21
    数组 load 分布式
  • 如何在Redis中实现分布式限流
    在Redis中实现分布式限流可以通过使用Redis的计数器和过期时间来实现。以下是一种基于计数器和过期时间的简单实现方式: 使用R...
    99+
    2024-04-09
    Redis
  • Android实现MVVM架构数据刷新详解流程
    目录效果图示例结构图代码解析导入dataBinding实体类xml视图VM绑定视图与数据层效果图 示例结构图 代码解析 导入dataBinding dataBinding{...
    99+
    2024-04-02
  • Python中如何实现Flask请求数据获取响应
    这篇文章给大家分享的是有关Python中如何实现Flask请求数据获取响应的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一,请求数据及其获取      ...
    99+
    2023-06-25
  • 如何在MongoDB中实现数据分页功能
    如何在MongoDB中实现数据分页功能概述:在大规模数据的处理过程中,数据分页是一项非常常见且重要的功能。它可以在处理海量数据时,只返回一部分数据,提高性能并降低系统负载。在MongoDB中,实现数据分页功能同样是一项重要的任务。本文将介绍...
    99+
    2023-10-22
    MongoDB 实现 数据分页
  • Redis如何实现数据库读写分离详解
    前言 Redis是一种NoSQL的文档数据库,通过key-value的结构存储在内存中,Redis读的速度是110000次/s,写的速度是81000次/s,性能很高,使用范围也很广。Redis是一个key-...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作