python 如何使用 pandas 在 flask web 网页中分页显示 csv 文件数据
发布时间:2023-04-03 09:06:55 389 相关标签: # html# bootstrap# webkit# flask# 技术
一、实战场景
python 如何使用 pandas 在 flask web 网页中分页显示 csv 文件数据
二、知识点
python 基础语法
python 文件读写
python 分页
pandas 数据处理
flask web 框架
jinja 模版
三、菜鸟实战
初始化 Flask 框架,设置路由
'''
Description: 分页读取并显示 csv 文件数据
'''
from math import ceil
import csv
from flask import Flask, render_template, request, redirect
from spiders.file_manager import FileManager
# 初始化框架
web = Flask(__name__)
@web.route('/')
def index():
# 首页
return redirect('/table/1')
@web.route('/table/')
def table(page_num):
# 分页读取并显示 csv 文件数据
file_manager = FileManager()
file = file_manager.get_data_file_path("tao365_detail.csv")
# 若不指定limits默认为 5
limits = request.args.get('limits', 5, type=int)
def show_csv(reader, page=page_num, limits=limits):
# 内部函数,根据limits和所在页数生成数据
df = []
for row in reader:
if page_num * limits >= (reader.line_num - 1) > (page_num - 1) * limits:
df.append(row)
return df
with open(file, 'r+', encoding='utf-8') as f:
# 计算页面数
row_length = len(f.readlines()) - 1
pages = int(ceil(row_length / limits))
with open(file, 'r+', encoding='utf-8') as f:
# 计算数据
reader = csv.reader(f)
next(reader)
df = show_csv(reader, page_num, limits)
# 加载模版和模版数据
return render_template('table.html', df=df, pages=pages, page_num=page_num, limits=limits)
@web.route('/table_detail')
def table_detail():
# 二手房详情
row = request.args.get('row').split(',')
return render_template('table_detail.html', row=row)
# 启动 flask web 框架
web.run(debug=True)
jinja 模版 渲染列表数据
分页请求数据
$(document).ready(function() {
$('.link-table').each(function() {
var row = $(this).attr('data-row')
var row1 = eval('(' + row + ')').join(',')
$(this).attr('href', '/table_detail?row=' + row1)
})
layui.use(['laypage', 'layer'], function() {
var laypage = layui.laypage,
layer = layui.layer;
laypage.render({
elem: 'demo',
count: "{{pages}}",
curr: "{{ page_num }}",
theme: '#587187',
// limit: pageSize //一页数据
jump: function(obj, first) {
console.log(obj.curr, first)
if (!first) {
window.location.href = "/table/" + obj.curr; //跳转链接
}
}
});
});
})
显示详情页数据示例
运行结果
运行截图
* Serving Flask app 'app_tao04'
* Debug mode: on
* Running on http://127.0.0.1:5000

浏览器中打开 http://127.0.0.1:5000
列表页数据示例

详情页数据示例

菜鸟实战,持续学习!
文章来源: https://blog.51cto.com/u_15872204/6006602
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报