AI代码开发宝库系列:使用AI IDE工具
如何有效循序渐进地使用AI IDE工具开发数据看板(含中文乱码解决方案)

在AI大模型应用课程中,我们学习了如何使用 Cursor / TRAE / Codebuddy / Qoder这类AI编程工具来开发数据看板。本文将结合课程内容和实际开发经验,详细介绍如何循序渐进地使用Cursor开发数据看板,特别关注中文乱码等常见问题的解决方案。
参考用IDE 开发的看板
香港疫情数据看板开发实战指南
https://blog.csdn.net/chenchihwen/article/details/149712433?spm=1011.2415.3001.5331
一、开发前的准备工作
1. 环境配置
首先确保安装了合适的Python版本(推荐3.10及以上),并配置好国内镜像源以提高依赖安装速度:
pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple
2. Cursor工具配置
在Cursor中正确配置API密钥:
-
打开File => Preference => Cursor Setting
-
配置OpenAI的Key和地址
3. 设置编码规则
为了避免中文乱码,需要在IDE中设置规则:
1、之前完成正确的功能,尽量不要修改。
比如当前的instruction是完善功能A的,那么只需要专注功能A,不需要修改其他功能(比如功能B)。
2、生成的注释用中文,并使用 UTF-8 编码。
3、生成的代码有时候会存在中文乱码的情况,所以你在生成中文的时候,需要检查是否有中文乱码,如果有乱码需要修正。
4、如果修改某个函数的实现,先理解之前函数实现的逻辑。然后在原来的基础上,再进行修改(保留之前的函数逻辑,不要移除)
-
生成的注释使用中文,并使用UTF-8编码
-
检查生成的代码是否有中文乱码,如有需要手动修正
二、循序渐进的开发步骤
先思考,人是怎么做的?
分成几个步骤,步骤之间有逻辑顺序的;锻炼的人的思维 => 撰写需求分析,拆成不同的步骤
Step1,理解数据表的字段含义
Step2,画图:横坐标是报告日期,纵坐标是新增确诊人数1、编写Python代码,打开 香港各区疫情数据_20250322.xlsx 读取前20行数据
2、帮我画图,显示新增确诊人数,横坐标是报告日期
3、很好,我想呈现不同区的新增确诊,也是显示这个折线图
4、帮我制作可视化大屏,选择适合的图表样式,图表的数量不超过5个,用Flask + Echarts实现
第一步:数据读取与探索
从最简单的任务开始,逐步构建复杂功能。以疫情数据看板为例:
1、编写Python代码,打开 香港各区疫情数据_20250322.xlsx 读取前20行数据
使用Cursor生成代码时,可能会遇到依赖问题:
Q:Missing optional dependency 'openpyxl' 解决方法:将错误选中 => Add to Chat,然后提示加清华园镜像
第二步:数据分析与处理
在正确读取数据的基础上,进行数据分析:
# 示例:计算每日新增和累计确诊病例数
def calculate_daily_cases(df):
# 确保报告日期列为日期类型
df['报告日期'] = pd.to_datetime(df['报告日期'])
# 按日期分组并计算每日总新增确诊和累计确诊
daily_summary = df.groupby('报告日期').agg({
'新增确诊': 'sum',
'累计确诊': 'max'
}).reset_index()
return daily_summary
第三步:基础可视化
使用matplotlib进行初步可视化:
import matplotlib.pyplot as plt
# 设置中文字体,解决中文显示问题
plt.rcParams['font.sans-serif'] = ['SimHei', 'Microsoft YaHei', 'SimSun']
plt.rcParams['axes.unicode_minus'] = False
# 绘制新增确诊曲线图
plt.figure(figsize=(12, 6))
plt.plot(daily_data['报告日期'], daily_data['新增确诊'])
plt.title('每日新增确诊病例')
plt.xlabel('日期')
plt.ylabel('新增确诊数')
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()
第四步:升级到Web可视化
从matplotlib转向ECharts,提供更好的Web体验:
# Flask后端API示例
@app.route('/api/daily_data')
def api_daily_data():
try:
df = load_data()
if df is not None:
daily_data = prepare_daily_data(df)
result = {
'dates': daily_data['报告日期'].dt.strftime('%Y-%m-%d').tolist(),
'daily_new': daily_data['新增确诊'].tolist(),
'total_cases': daily_data['累计确诊'].tolist()
}
return jsonify(result)
except Exception as e:
return jsonify({'error': str(e)})
第五步:构建完整看板
整合所有组件,创建完整的数据看板:
<!-- 前端ECharts可视化示例 -->
<div class="chart-wrapper">
<div class="chart-title">每日新增与累计确诊数据</div>
<div class="chart" id="daily-total-chart"></div>
</div>
<script>
// 初始化每日新增与累计确诊数据图表
function initDailyTotalChart(data) {
const chartDom = document.getElementById('daily-total-chart');
const myChart = echarts.init(chartDom);
const option = {
tooltip: { trigger: 'axis' },
xAxis: { type: 'category', data: data.dates },
yAxis: { type: 'value' },
series: [
{
name: '每日新增',
type: 'bar',
data: data.daily_new
},
{
name: '累计确诊',
type: 'line',
data: data.total_cases
}
]
};
myChart.setOption(option);
}
</script>
三、中文乱码问题解决方案
1. Python代码中的中文处理
# 设置matplotlib中文字体 plt.rcParams['font.sans-serif'] = ['SimHei', 'Microsoft YaHei', 'SimSun', 'Arial Unicode MS'] plt.rcParams['axes.unicode_minus'] = False # 在Flask应用中设置响应头 @app.after_request def after_request(response): response.headers['Content-Type'] = 'text/html; charset=utf-8' return response
2. HTML页面中的中文处理
<head>
<meta charset="UTF-8">
<style>
* {
font-family: "Microsoft YaHei", "PingFang SC", "Hiragino Sans GB", sans-serif;
}
</style>
</head>
3. 数据文件中的中文处理
确保Excel文件保存为UTF-8编码格式,或在读取时指定编码:
# 读取Excel时处理编码 df = pd.read_excel(DATA_FILE, encoding='utf-8')
四、使用AI IDE工具的注意事项
1. Prompt编写技巧
-
分步骤提问:不要一次性要求完成所有功能,分步骤逐步实现
-
明确技术栈:指定使用的技术(如Flask + ECharts)
-
限定范围:明确图表数量、功能要求等
2. 代码质量控制
-
检查生成代码:AI生成的代码可能存在错误,需要仔细检查
-
保留正确功能:之前完成正确的功能尽量不要修改
-
理解逻辑后再修改:修改函数实现时,先理解之前的逻辑
3. 错误处理与调试
-
依赖问题:遇到Missing optional dependency错误时,使用国内镜像安装
-
中文乱码:按照上述方法设置字体和编码
-
API接口:确保前后端接口数据格式一致
4. 性能优化建议
-
数据缓存:对于不经常变化的数据,使用缓存机制
-
异步加载:地图等大数据量资源采用异步加载
-
响应式设计:确保看板在不同设备上都能正常显示
五、实际开发经验总结
1. 开发流程建议
-
从简单到复杂:先实现基础数据读取,再逐步添加功能
-
频繁测试:每完成一个小功能就进行测试
-
版本控制:使用Git管理代码版本
-
文档记录:记录开发过程中的问题和解决方案
2. 常见问题及解决方案
-
地图数据获取:使用阿里云DataV等可靠数据源获取GeoJSON数据
-
跨平台兼容性:采用Web技术栈天然支持跨平台
-
用户界面设计:与UI设计师沟通,确保符合设计要求
3. 最佳实践
-
模块化设计:将功能拆分为独立模块,便于维护
-
错误处理:添加完善的错误处理机制
-
用户体验:提供加载状态提示、友好的错误信息
通过以上方法,我们可以有效地使用Cursor等AI编程工具循序渐进地开发数据看板,同时解决中文乱码等常见问题,最终构建出功能完善、用户体验良好的数据可视化应用。
更多推荐
所有评论(0)