实战篇:数据展示与报表生成

实战篇:数据展示与报表生成

数据展示与报表生成简介

数据展示是将数据以表格、图形或其他形式展示给用户的过程。报表生成则涉及创建包含特定数据集的文档,通常用于打印或分发。

项目结构

继续使用之前讨论的Flask项目结构。

第1步:数据展示

在Flask中,数据展示通常涉及到查询数据库并将结果传递到模板。

示例:展示用户列表

@app.route('/users')
def list_users():users = User.query.all()return render_template('users.html', users=users)

templates/users.html

<table><tr><th>Username</th><th>Email</th></tr>{% for user in users %}<tr><td>{{ user.username }}</td><td>{{ user.email }}</td></tr>{% endfor %}
</table>
第2步:使用Flask-Admin

Flask-Admin是一个强大的Flask扩展,可以快速为你的应用创建管理界面。

安装Flask-Admin

pip install flask-admin

集成Flask-Admin

from flask_admin import Admin
from flask_admin.contrib.sqla import ModelViewadmin = Admin(app, name='MyApp', template_mode='bootstrap3')
admin.add_view(ModelView(User, db.session))
第3步:报表生成

对于报表生成,可以使用Flask-Report和Jinja2模板。

安装Flask-Report

pip install flask-report

创建报表

from flask_report import Reportreport = Report(app, 'report_name')@app.route('/generate_report')
def generate_report():data = {'key': 'value'}report.generate('template_name.html', data)

templates/template_name.html

<!DOCTYPE html>
<html>
<head><title>Report</title>
</head>
<body><h1>Report Data</h1><p>{{ key }}</p>
</body>
</html>
第4步:图表和可视化

使用图表库如Chart.js或Highcharts与Flask集成,实现数据的可视化。

集成Chart.js

  1. 在模板中引入Chart.js。
  2. 创建一个画布(canvas)元素。
  3. 使用JavaScript和AJAX请求数据并生成图表。

templates/chart.html

<canvas id="myChart" width="400" height="400"></canvas>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script>// JavaScript 代码来创建图表
</script>
第5步:导出数据

提供数据导出功能,如CSV或Excel格式。

示例:导出用户数据为CSV

import csv@app.route('/export_users')
def export_users():response = make_response(render_template('users.csv', users=User.query.all()))response.headers["Content-Disposition"] = "attachment; filename=users.csv"return response

templates/users.csv

Username,Email
{{ users|join('\n') }}
第6步:测试数据展示和报表

tests/test_routes.py中编写测试用例来验证数据展示和报表生成。

def test_users_list(client):response = client.get('/users')assert response.status_code == 200# 检查页面中是否有用户数据
结语

在本实战篇中,我们学习了如何在Flask应用中实现数据展示和报表生成,包括使用Flask-Admin、Flask-Report和集成图表库。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/27510.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

操作符详解(2)

上次我们讲了算术操作符 加减乘除取模 除号 如果你想得到整数&#xff0c;那么两边必须是整数&#xff0c;如果你想得到浮点数&#xff0c;那么你的操作数的两端必须有一个是浮点数 而取模% 两边必须是整数&#xff0c;返回的是整除后的余数 然后我们还讲了左移和右移操作…

Meta-Llama-3-8B 部署

Meta-Llama-3-8B 模型文件地址 LLaMA-Factory 仓库地址 Download Ollama conda create -n llama8b_ python3.10 -y conda activate llama8b pip install -r requirements.txt -i https://pypi.mirrors.ustc.…

搭建Python虚拟环境(二):venv和virtualenv

下面继续详细介绍各种创建虚拟环境的方式 使用 venv 创建Python虚拟环境 在Python开发中&#xff0c;虚拟环境是一个非常重要的概念。它允许我们为每个项目创建独立的环境&#xff0c;这样可以避免不同项目之间的依赖包冲突。venv 是Python用于创建虚拟环境的标准库之一。本文…

网络安全练气篇——OWASP TOP 10

1、什么是OWASP&#xff1f; OWASP&#xff08;开放式Web应用程序安全项目&#xff09;是一个开放的社区&#xff0c;由非营利组织 OWASP基金会支持的项目。对所有致力于改进应用程序安全的人士开放&#xff0c;旨在提高对应用程序安全性的认识。 其最具权威的就是“10项最严重…

浔川身份证号码查询——浔川python科技社

Python获取身份证信息 公民身份号码是每个公民唯一的、终身不变的身份代码&#xff0c;由公安机关按照公民身份号码国家标准编制。每一个居民只能拥有一个唯一的身份证&#xff0c;它是用于证明持有人身份的一种法定证件。 身份证包含了个人的一些重要信息&#xff0c;比如&am…

2024年哪4种编程语言最值得学习?看JetBrains报告

六个月前,编程工具界的大牛JetBrains发布了他们的全球开发者年度报告。 小吾从这份报告中挑出了关于全球程序员过去一年使用编程语言的情况和未来的采纳趋势,总结出2024年最值得学习的四种编程语言。一起来看看吧。 JetBrains在2023年中开始,就向全球的编程达人们发出了问卷…

Vue32-挂载流程

一、init阶段 生命周期本质是函数。 1-1、beforeCreate函数 注意&#xff1a; 此时vue没有_data&#xff0c;即&#xff1a;data中的数据没有收到。 1-2、create函数 二、生成虚拟DOM阶段 注意&#xff1a; 因为没有template选项&#xff0c;所以&#xff0c;整个div root都…

论文学习day01

1.自我反思的检索增强生成&#xff08;SELF-RAG&#xff09; 1.文章出处&#xff1a; Chan, C., Xu, C., Yuan, R., Luo, H., Xue, W., Guo, Y., & Fu, J. (2024). RQ-RAG: Learning to Refine Queries for Retrieval Augmented Generation. ArXiv, abs/2404.00610. 2.摘…

Nginx基础理论

Nginx最为最受欢迎的反向代理和负载均衡服务器&#xff0c;被广泛的应用于互联网项目中。这不仅仅是因为Nginx本身比较轻量&#xff0c;更多的是得益于Nginx的高性能特性&#xff0c;以及支持插件化开发&#xff0c;为此&#xff0c;很多开发者或者公司基于Nginx开发出了众多的…

Mysql都有哪些数据类型?

MySQL 支持多种数据类型&#xff0c;这些数据类型定义了存储在数据库中的数据的种类。以下是 MySQL 中常见的数据类型分类及其示例&#xff1a; 数值类型 整数类型 TINYINT&#xff1a;非常小的整数&#xff0c;带符号的范围是 -128 到 127&#xff0c;无符号的范围是 0 到 …

监控易监测对象及指标之:全面监控MongoDB 5数据库

随着企业数据量的持续增长&#xff0c;数据库的性能和稳定性对于保障业务连续性至关重要。MongoDB 5作为一款流行的NoSQL数据库&#xff0c;以其灵活的文档模型和强大的扩展能力&#xff0c;在各类业务场景中发挥着关键作用。 为了确保MongoDB 5数据库的稳定运行和高效性能&…

CCAA质量管理【学习笔记】​ 备考知识点笔记(一)

第一部分 质量管理体系相关标准 《质量管理体系基础考试大纲》中规定的考试内容&#xff1a; 3.1质量管理体系标准 a) 了解 ISO 9000 系列标准发展概况&#xff1b; b) 理 解 GB/T19000 标准中涉及的基本概念和质量管理原则&#xff1b; c) 理 解GB/T19000 标准中的部分…

论文阅读笔记:Instance-Aware Dynamic Neural Network Quantization

论文阅读笔记&#xff1a;Instance-Aware Dynamic Neural Network Quantization 1 背景2 创新点3 方法4 模块4.1 网络量化4.2 动态量化4.3 用于动态量化的位控制器4.4 优化 5 效果 论文&#xff1a;https://openaccess.thecvf.com/content/CVPR2022/papers/Liu_Instance-Aware_…

CDN绕过技术

DNS域名信息收集 简介 Dns域名信息的手机&#xff0c;需要收集域名对应IP&#xff0c;域名注册人&#xff0c;DNS记录&#xff0c;子域名等一系列与域名相关的信息。 Cdn技术简介 Cdn是一个内容分发网络&#xff0c;类似于dns服务器一样&#xff0c;用户发送数据直接发送到…

神经网络保存-导入

保存 import tensorflow as tf import numpy as np import matplotlib.pyplot as plt import gzip # fashion_mnisttf.keras.datasets.fashion_mnist # (train_images,train_labels),(test_images,test_labels)fashion_mnist.load_data()#数据在个人资源里面&#xff0c;放到该…

maven 下载jar包加载顺序

在 Maven 构建过程中&#xff0c;依赖的下载源取决于你的 pom.xml 文件中的 配置、settings.xml 文件中的 和 配置&#xff0c;以及你的 Nexus 仓库的设置。以下是决定 Maven 从哪个仓库下载依赖的关键点&#xff1a; 仓库配置优先级 项目 pom.xml 文件中的仓库配置&#xff…

联想电脑电池只能充到80%,就不在充电了,猛一看以为坏了,只是设置了养护模式。

现在电池管理模式有三种&#xff1a; 1&#xff09;常规 2&#xff09;养护 3&#xff09;快充 好久没有用联想的电脑了&#xff0c;猛一看&#xff0c;咱充到了80%不充了&#xff0c;难道电池是坏的&#xff1f;我们要如何设置才可以让其充电到100%呢&#xff1f; 右下角…

搜索文档的好助手

搜索文档的好助手 AnyTXT SearcherEverything AnyTXT Searcher 文本内容搜索 下载&#xff1a;AnyTXT Searcher Everything 它能够基于文件名快速定文件和文件夹位置 下载&#xff1a;Everything

LLM大语言模型算法特训,带你转型AI大语言模型算法工程师(完结)

LLM大语言模型算法 与AI大语言模型算法工程师的联系 LLM&#xff08;Large Language Model&#xff09;大语言模型是指像GPT这样的大型自然语言处理模型&#xff0c;而AI大语言模型算法工程师则是负责开发和优化这些模型的专业人士。它们之间的联系可以从以下几个方面来理解&a…

ROPgadget

他是一个常用的pwn工具. 首相看这一篇文章 什么是gadget&#xff0c;以及64位libc如何泄露的问题_libc特殊gadget收集-CSDN博客 之后看这一篇 (Pwn)CTF工具 ROPgadget 的安装与使用介绍_ropgadget --binary pwn strings information --strin-CSDN博客这个时候已经差不多了 …