网站改版计划wordpress后台进入后怎么安装模板
2026/3/15 8:16:19 网站建设 项目流程
网站改版计划,wordpress后台进入后怎么安装模板,网站建设公司名片,淘宝网站建设教程视频教程大家好#xff01;我是CSDN的Python新手博主#xff5e; 上一篇我们给办公助手加了定时功能#xff0c;能自动生成销售报表并发送邮件#xff0c;但很多小伙伴反馈“每天的报表文件存在电脑里#xff0c;找历史数据要翻文件夹#xff0c;领导想看汇总数据也不方便”。今天…大家好我是CSDN的Python新手博主 上一篇我们给办公助手加了定时功能能自动生成销售报表并发送邮件但很多小伙伴反馈“每天的报表文件存在电脑里找历史数据要翻文件夹领导想看汇总数据也不方便”。今天就带来超落地的新手实战项目——用Flask搭建办公数据可视化看板本次用Python轻量Web框架Flask把定时任务生成的Excel数据、销售额图表整合到网页中实现3大核心功能实时展示当日销售汇总数据、按日期查询历史报表、网页嵌入可视化图表。不用部署到服务器本地运行后同一局域网内的电脑比如领导的电脑、同事的电脑都能通过浏览器访问数据分享和查看效率翻倍全程代码复用之前的办公功能注释详细新手复制就能搭建轻松从“文件式管理”升级到“网页式看板”一、本次学习目标掌握轻量Web框架Flask的基础使用路由配置、模板渲染、静态文件加载学会将Excel数据、matplotlib图表整合到Web页面实现数据可视化展示理解“本地Web服务”的运行逻辑实现局域网内数据共享掌握网页中日期筛选功能的实现支持历史报表查询能将看板与之前的定时任务联动实现“自动生成数据→网页实时更新”。二、前期准备安装核心依赖库安装Flask框架pip install flask -i https://pypi.tuna.tsinghua.edu.cn/simple确保之前的依赖库已安装openpyxl、matplotlibpip install openpyxl matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple准备数据与文件结构办公数据看板/ # 主文件夹├─ app.py # Flask核心代码我们要写的├─ static/ # 静态文件文件夹放图表、css样式│ └─ charts/ # 存放定时任务生成的图表├─ templates/ # 模板文件夹放网页HTML文件│ └─ dashboard.html # 看板网页我们要写的└─ 每日销售报表/ # 定时任务生成的Excel报表└─ 当日销售筛选结果.xlsx└─ 2026-01-08销售筛选结果.xlsx # 历史报表按日期命名关键修改之前的定时任务代码让生成的Excel和图表按“日期”命名比如“2026-01-08销售筛选结果.xlsx”这样后续才能按日期查询历史数据文末会补充修改方法三、实战搭建办公数据可视化看板核心功能拆解首页展示自动加载当日销售汇总数据各部门销售额、总销售额、达标订单数图表展示网页嵌入当日销售额柱状图支持放大查看历史查询通过日期选择器查询任意一天的销售数据和图表数据导出支持下载当前查看日期的Excel报表文件局域网共享本地运行后同一网络的电脑输入地址就能访问。完整代码实现1Flask核心代码app.py-- coding: utf-8 --from flask import Flask, render_template, request, send_fileimport osimport datetimefrom openpyxl import load_workbookimport matplotlib.pyplot as plt 全局配置 app Flask(name) # 初始化Flask应用路径配置修改为你的实际路径EXCEL_REPORT_FOLDER rC:\Users\张三\Desktop\办公数据看板\每日销售报表 # Excel报表文件夹CHART_FOLDER rC:\Users\张三\Desktop\办公数据看板\static\charts # 图表文件夹static目录下Flask才能识别TODAY datetime.date.today().strftime(“%Y-%m-%d”) # 今日日期格式2026-01-08解决matplotlib中文乱码plt.rcParams[‘font.sans-serif’] [‘SimHei’]plt.rcParams[‘axes.unicode_minus’] False 数据处理函数复用改造 def get_excel_data(dateTODAY):“”“读取指定日期的Excel报表数据返回汇总信息和详细数据”“”# 拼接Excel文件路径按日期命名excel_filename f{date}销售筛选结果.xlsxexcel_path os.path.join(EXCEL_REPORT_FOLDER, excel_filename)if not os.path.exists(excel_path): return {error: f未找到{date}的销售报表}, [] try: wb load_workbook(excel_path) ws wb.active # 读取表头和所有数据 headers [cell.value for cell in ws[1]] data [] for row in ws.iter_rows(min_row2, values_onlyTrue): if row[0] is not None: data.append(dict(zip(headers, row))) # 数据汇总按部门统计销售额 dept_sales {} total_sales 0.0 qualified_orders 0 # 销售额2000的订单数 for item in data: dept item.get(部门, 未知部门) sales float(item.get(销售额, 0)) dept_sales[dept] dept_sales.get(dept, 0) sales total_sales sales if sales 2000: qualified_orders 1 summary { date: date, total_sales: round(total_sales, 2), # 总销售额保留2位小数 qualified_orders: qualified_orders, dept_count: len(dept_sales), # 涉及部门数 dept_sales: dept_sales # 各部门销售额 } return summary, data except Exception as e: return {error: f读取报表失败{str(e)}}, []def get_chart_path(dateTODAY):“”“获取指定日期的图表路径用于网页展示”“”chart_filename f{date}部门销售额柱状图.pngchart_path os.path.join(CHART_FOLDER, chart_filename)# 返回相对路径Flask模板中需要相对路径return f/static/charts/{chart_filename} if os.path.exists(chart_path) else “”def get_available_dates():“”“获取所有可用的报表日期用于历史查询下拉框”“”available_dates []if not os.path.exists(EXCEL_REPORT_FOLDER):return available_dates# 遍历文件夹提取日期从文件名中截取for filename in os.listdir(EXCEL_REPORT_FOLDER):if filename.endswith(“.xlsx”) and “销售筛选结果” in filename:# 截取日期部分文件名格式2026-01-08销售筛选结果.xlsxdate_str filename[:10]try:# 验证日期格式是否正确datetime.datetime.strptime(date_str, “%Y-%m-%d”)available_dates.append(date_str)except:continue# 按日期倒序排列最新的在前面available_dates.sort(reverseTrue)return available_dates Flask路由配置网页访问入口 app.route(“/”)def dashboard():“”“看板首页展示当日数据”“”# 获取用户选择的日期默认今日selected_date request.args.get(“date”, TODAY)# 获取数据汇总和详细数据summary, detail_data get_excel_data(selected_date)# 获取图表路径chart_path get_chart_path(selected_date)# 获取所有可用的报表日期用于下拉框available_dates get_available_dates()# 渲染网页模板把数据传递给HTML return render_template( dashboard.html, summarysummary, detail_datadetail_data, chart_pathchart_path, available_datesavailable_dates, selected_dateselected_date )app.route(“/download”)def download_excel():“”“下载指定日期的Excel报表”“”selected_date request.args.get(“date”, TODAY)excel_filename f{date}销售筛选结果.xlsxexcel_path os.path.join(EXCEL_REPORT_FOLDER, excel_filename)if not os.path.exists(excel_path): return f未找到{selected_date}的报表文件, 404 # 发送文件给浏览器触发下载 return send_file( excel_path, as_attachmentTrue, download_nameexcel_filename, mimetypeapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet ) 程序入口 ifname “main”:# 启动Flask服务host0.0.0.0表示允许局域网内访问port5000是默认端口app.run(host“0.0.0.0”, port5000, debugTrue)2网页模板代码templates/dashboard.html销售数据可视化看板销售数据可视化看板!-- 日期选择器 -- div classdate-select select iddateSelect onchangewindow.location.href/?datethis.value {% for date in available_dates %} option value{{ date }} {% if date selected_date %}selected{% endif %}{{ date }}/option {% endfor %} /select a href/download?date{{ selected_date }} classdownload-btn下载当前报表lt;/agt; lt;/divgt; !-- 数据汇总卡片 -- {% if summary.error %} div classerror{{ summary.error }}/div {% else %} div classsummary-card div classcard stylebackground-color: #3498db; h3统计日期/h3 div classvalue{{ summary.date }}/div /div div classcard stylebackground-color: #e74c3c; h3总销售额元/h3 div classvalue{{ summary.total_sales }}/div /div div classcard stylebackground-color: #2ecc71; h3达标订单数/h3 div classvalue{{ summary.qualified_orders }}/div /div div classcard stylebackground-color: #f39c12; h3涉及部门数/h3 div classvalue{{ summary.dept_count }}/div /div lt;/divgt; !-- 图表展示区域 -- div classchart-area h2各部门销售额分布/h2 {% if chart_path %} img src{{ chart_path }} alt部门销售额柱状图 {% else %} p stylecolor: #e74c3c;未找到{{ summary.date }}的图表文件/p {% endif %} lt;/divgt; !-- 详细数据表格 -- div classdata-table h2{{ summary.date }}销售详细数据/h2 table thead tr {% for key in detail_data.0.keys() %} th{{ key }}/th {% endfor %} /tr /thead tbody {% for item in detail_data %} tr {% for value in item.values() %} td{{ value }}/td {% endfor %} /tr {% endfor %} /tbody /table /div {% endif %} /div关键代码拆解新手必看1Flask核心基础路由与模板渲染1. 路由配置app.route(“/”) 表示访问 http://localhost:5000/ 时执行dashboard函数app.route(“/”)def dashboard():# 2. 模板渲染把数据传递给HTML文件生成最终网页return render_template(“dashboard.html”, 变量名变量值)2数据处理按日期读取与汇总文件命名规范Excel和图表文件命名为“2026-01-08销售筛选结果.xlsx”“2026-01-08部门销售额柱状图.png”日期提取遍历报表文件夹从文件名中截取日期字符串验证格式后生成可用日期列表数据汇总读取Excel后按部门统计销售额、计算总销售额和达标订单数生成直观的汇总信息。3网页与后端的数据交互前端HTML用下拉框展示所有可用日期选择日期后通过window.location.href跳转到带日期参数的地址比如/?date2026-01-07后端Flask用request.args.get(date, TODAY)获取前端传递的日期参数重新渲染根据获取的日期读取对应数据重新渲染网页展示选中日期的报表。4局域网共享的关键配置app.run(host“0.0.0.0”, port5000, debugTrue)5定时任务联动修改原保存路径固定名称SAVE_EXCEL_PATH rC:…\当日销售筛选结果.xlsx修改后按日期命名TODAY datetime.date.today().strftime(“%Y-%m-%d”)SAVE_EXCEL_PATH frC:…{TODAY}销售筛选结果.xlsxSAVE_CHART_PATH frC:…{TODAY}部门销售额柱状图.png四、运行效果与使用方法本地运行看板按之前的文件结构创建app.py、templates/dashboard.html和static/charts文件夹修改app.py中的路径配置EXCEL_REPORT_FOLDER、CHART_FOLDER确保指向你的报表和图表文件夹打开命令行切换到“办公数据看板”主文件夹执行命令python app.py命令行显示“Running on http://192.168.1.105:5000/”打开浏览器输入这个地址就能看到看板网页。核心功能使用查看当日数据打开网页默认显示今日销售汇总、图表和详细数据查询历史数据通过下拉框选择历史日期网页自动刷新显示对应日期的报表下载报表点击“下载当前报表”按钮自动下载选中日期的Excel文件共享访问把命令行显示的地址发给同一网络的同事/领导他们就能直接访问看板。五、新手避坑小贴士模板路径错误必须把HTML文件放在templates文件夹下static文件夹必须存放静态文件图表、css否则Flask无法识别端口被占用如果启动时提示“Address already in use”修改app.run的port参数比如改成5001局域网无法访问检查两台电脑是否在同一WiFi/局域网关闭防火墙确保启动时设置了host0.0.0.0日期格式错误确保Excel和图表文件的日期部分是“2026-01-08”格式否则无法被看板识别中文乱码Python代码开头加# -*- coding: utf-8 -*-HTML文件指定charsetUTF-8matplotlib指定中文字体。六、进阶扩展新手可选添加用户登录用Flask-Login扩展给看板加登录功能避免数据泄露数据筛选与搜索在网页添加“部门筛选”“销售额范围搜索”功能精准查看数据实时更新数据用AJAX实现网页自动刷新比如每5分钟刷新一次不用手动刷新页面部署到云服务器把看板部署到阿里云、腾讯云等服务器实现外网访问新手可先学本地部署再进阶云部署多图表展示添加折线图展示近7天销售额趋势、饼图部门销售额占比让数据更直观。七、总结与系列回顾AI辅助办公结合ChatGPT API实现报表自动总结、异常数据智能提醒移动端访问优化看板网页适配手机实现手机随时查看报表多用户权限给不同角色领导、员工设置不同的看板访问权限数据更安全。如果这篇文章对你有帮助欢迎点赞收藏关注如果在搭建看板时遇到路径错误、局域网访问失败等问题随时在评论区留言我会逐一解答 新手不用怕Web开发Flask入门简单跟着实战代码多试几次就能轻松搭建属于自己的办公数据看板

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询