Cursor实战:Web版背单词应用开发演示

Cursor实战:Web版背单词应用开发演示

  • 需求分析
    • 自行编写需求文档
    • 借助Cursor生成需求文档
  • 前端UI设计
  • 后端开发
    • 项目结构
    • 环境参数
    • 数据库设计
    • 安装Python依赖
    • 运行应用
  • 前端代码修改
    • 测试前端界面
  • 测试数据生成
  • 功能测试
    • Bug修复
  • 总结

在上一篇《Cursor AI编程助手不完全指南》中,我们详细介绍了Cursor这款强大的AI编程工具。为了让大家能更直观地了解 Cursor 的实战应用价值,本文将通过一个实际项目来展示其开发流程。我们将使用 Cursor 开发一个 Web 版单词学习程序,通过这个案例,您将看到 AI 辅助开发的完整过程,体验从需求分析到代码实现的全过程。让我们开始这次实战之旅。

需求分析

在开始开发之前,明确的需求文档是项目成功的关键。一个好的需求文档不仅能指导开发方向,还能作为与 Cursor 进行高效对话的重要基础。我们有两种方式来准备需求文档:自行编写需求文档和借助 Cursor 生成需求文档。

自行编写需求文档

  • 明确列出功能模块和具体需求
  • 按优先级排序各项功能
  • 将文档保存为独立文件,方便随时参考
  • 确保描述清晰,避免歧义

借助Cursor生成需求文档

  • 提供项目的核心目标和主要功能点
  • 让AI协助完善功能描述和技术细节
  • 根据实际需求进行调整和补充

Cursor帮我们需求分析

摘抄部分功能内容,填充到自己的开发需求文档如下:

# 开发一个学单词的web程序

## 核心功能需求

### 学习模式

- 从未学单词中挑选10个单词进行学习
- 单词卡片展示(拼写、音标、释义、例句)
- 发音功能
- 可以将当前词加入到错题本,进行复习

### 复习模式

- 从错词本中随机抽取单词进行复习

### 用户管理

- 用户免登录,可以设置用户名

## 技术需求

### 前端

- 响应式设计,支持多端适配
- 流畅的交互体验,界面简洁美观

### 后端

- 如果需要用到后端程序,请使用python语言
- 如果需要用到数据库,请使用MySQL

## 数据结构

### 单词库

- 单词基本信息(拼写、音标、发音音频、释义、例句)

### 用户学习记录

- 记录用户学习记录和错题信息

前端UI设计

使用 Cursor 的 COMPOSER 模式+ AGENT,以需求文档作为上下文,和 Cursor 对话,让其帮忙生成 UI 界面。

请根据我的需求文档,设计一个学单词的web界面,要求简洁美观

Cursor进行UI设计

觉得设计的还不错,就直接选择 Accept,如需修改可继续提问进行修改。

Accept

下面进行 web 界面的预览, 选中 html 文件,右键 Open In Default Browser

Open In Default Browser

界面预览

后端开发

前端部分先这样,可以继续进行后端设计,包括API接口、功能实现和数据库设计。

Cursor进行后端设计

Cursor进行后端设计

项目结构

Cursor 给出的后端项目结构:

   app/
   ├── models/
   │   └── models.py
   ├── routes/
   │   └── word_routes.py
   ├── utils/
   └── app.py
   requirements.txt
   .env

环境参数

Cursor 创建一个保存环境变量文件,我们需要修改其中的内容,如连接数据库的URI。

DATABASE_URL=mysql+pymysql://root:root@localhost/word_memorize
FLASK_ENV=development
FLASK_APP=app/app.py

数据库设计

  • Word 表:存储单词基本信息
  • UserProgress 表:存储用户学习进度和错题本

创建数据库:

CREATE DATABASE word_memorize CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

表可以先不创建,后面让Cursor生成程序进行表的创建和测试数据生成。

安装Python依赖

Cursor 已为我们创建一个 requirements.txt 文件来管理项目依赖(如果没有,可让其帮忙生成)。

Flask==2.0.1
Flask-SQLAlchemy==2.5.1
Flask-CORS==3.0.10
PyMySQL==1.0.2
python-dotenv==0.19.0
requests==2.26.0

有了依赖我们可以直接执行以下安装命令,可以让 Cursor 帮忙执行,(注意:如果使用的是python虚拟环境,可能需要手动执行命令,cursor 默认使用默认的 python 环境):

pip install -r requirements.txt

安装Python依赖

运行应用

flask run

首次运行,出错了,没关系,交给 Cursor 去解决(这是一个持续过程,需要有点耐心):

运行出错

根据提示,升级Flask版本:

Cursor提示修复

继续运行,又报错了,继续丢给 Cursor 帮忙解决:

Cursor提示修复

修改了依赖的版本和代码中依赖的导入方式:

Cursor提示修复

又回到了第一个问题,版本不兼容,Cursor 建议让我们用第二种方式解决:

Cursor提示修复

这次启动成功:

启动成功

前端代码修改

接下来,我们需要修改前端JavaScript代码,对接后端 API。

Cursor前端代码修改

测试前端界面

修改之后,打开页面,报错了页面中的CSS和JS文件找不到,可能是路径问题,需要修复下:

前端页面问题

前端页面修复

接收所有建议,需要运行一个服务用于加载前端文件:

前端正常

测试数据生成

我们让Cursor帮忙生成测试单词数据:

测试数据生成

添加单词报错:

添加单词报错

一通修复之后,终于添加了单词

添加测试单词

功能测试

单词展示和下一个功能正常:

单词展示

加入错题本正常:

加入错题本正常

单词学完:

单词学完

Bug修复

页面虽然展示添加到错题本成功,其实并没有真正添加到数据库:

错题本bug

错题本bug

需要Cursor帮忙修复这个问题:

Cursor修复后端代码

修复之后,重启程序,仍然有问题,不过我观察到错题记录是被答题记录更新掉了,需要让 Cursor 注意到这个问题:

Cursor修复后端代码

Cursor修复后端代码

错题本终于也正常了:

Cursor修复成功

总结

虽然这是一个相对简单的示例项目,但它展示了 AI 辅助开发的基本流程和方法。通过这次实践,我们可以总结以下几点经验:

1、交互策略

  • 与Cursor进行清晰、具体的对话
  • 将复杂需求拆分成小步骤
  • 及时反馈和纠正AI的输出

2、效率提升

  • 善用上下文管理,保持对话连贯性
  • 复用已验证的代码片段
  • 建立个人的提示词模板

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【JavaEE进阶】Spring MVC(3)

欢迎关注个人主页:逸狼 创造不易,可以点点赞吗 如有错误,欢迎指出~ 返回响应 返回静态页面 //RestController Controller RequestMapping("/response") public class ResponseController {RequestMapping("/returnHtmlPage&…

文本操作基础知识:正则表达式

目录 摘要: 一、语法 二、匹配模式pattern 1、普通字符[ ] 2、限定字符 3、定位字符 4、运算字符( ) 三、修饰符flags 四、各语言的正则使用 1、Python的re 参考资料: 摘要: 常用匹配:[A-C]、[^A-C]、\w、\d、\n、\r、…

ROS-相机话题-获取图像-颜色目标识别与定位-目标跟随-人脸检测

文章目录 相机话题获取图像颜色目标识别与定位目标跟随人脸检测 相机话题 启动仿真 roslaunch wpr_simulation wpb_stage_robocup.launch rostopic hz /kinect2/qhd/image_color_rect/camera/image_raw:原始的、未经处理的图像数据。 /camera/image_rect&#xff…

Ubuntu USB耳机找不到设备解决

​ 一. 确定硬件连接 lsusb -t 插拔USB耳机,确定是否有USB识别到 二. 查看输出设备 sudo apt-get install pavucontrol pavucontrol 点击想要使用的输出设备后面的绿色选项 三. 输出设备没有USB耳机时调试 3.1 确认ALSA是否识别设备 列出ALSA播放设备&#…

深入解析「卡顿帧堆栈」 | UWA GPM 2.0 技术细节与常见问题

在游戏开发过程中,卡顿问题一直是影响玩家体验的关键因素。UWA GPM 2.0全新推出的「卡顿帧堆栈」功能,专为研发团队提供精准、高效的卡顿分析方案,能够直观呈现游戏运行时的堆栈信息,助力团队迅速找到性能瓶颈。该功能一经上线&am…

Web3.py 入门笔记

Web3.py 学习笔记 📚 1. Web3.py 简介 🌟 Web3.py 是一个 Python 库,用于与以太坊区块链进行交互。它就像是连接 Python 程序和以太坊网络的桥梁。 官方文档 1.1 主要功能 查询区块链数据(余额、交易等)发送交易与…

点击unity资源文件自动展开左侧的文件路径

背景: 最近从cocos那边转过来的unity同事总是吐糟我们unity选中一个资源后都无法清晰的看到他的文件路径,这给他的工作带来了很多的烦恼,于是我想到昨天刚看到一个unity编辑器下的简易协程实现,通过2个接口Selection.activeObjec…

几种查询本机公网IP的方式

英文网站 bgp.he.net 链接地址:https://bgp.he.net/ bgp.he.net是一个在线工具平台,主要用于查询IP的路由信息,特别是与BGP(边界网关协议)相关的信息。 以下是对bgp.he.net的详细介绍: 一、平台功能 BGP查询:用户可以通过输入IP地址,查询该IP的BGP路由信息,包括AS号…

每日一题——编辑距离

编辑距离 参考资料题目描述示例 解题思路动态规划(DP)方法 代码实现复杂度分析示例详解示例1:"nowcoder" → "new"示例2:"intention" → "execution" 总结与心得 参考资料 建议先参考下…

ChatGPT行业热门应用提示词案例-AI绘画类

AI 绘画指令是一段用于指导 AI 绘画工具(如 DALLE、Midjourney 等)生成特定图像的文本描述。它通常包含场景、主体、风格、色彩、氛围等关键信息,帮助 AI 理解创作者的意图,从而生成符合要求的绘画作品。 ChatGPT 拥有海量的知识…

LearnOpenGL——高级OpenGL(下)

教程地址:简介 - LearnOpenGL CN 高级数据 原文链接:高级数据 - LearnOpenGL CN 在OpenGL中,我们长期以来一直依赖缓冲来存储数据。本节将深入探讨一些操作缓冲的高级方法。 OpenGL中的缓冲本质上是一个管理特定内存块的对象,它…

VScode插件EIDE - 嵌入式开发工具

Embedded IDE - 可以选开源GCC编译器,直接替代Keil;或者用Keil内置的编译器, - 可导入keil的工程,与Keil Assistant插件相比,优势在于可以不用打开Keil改文件架构(增删等) 再吐槽一下富文本编辑…

C语言进阶——6-C语言文件操作

目录 本章重点1. 为什么使用文件2. 什么是文件2.1 程序文件2.2 数据文件2.3 文件名 3. 文件的打开和关闭3.1 文件指针3.2 文件的打开和关闭 4. 文件的顺序读写4.1 顺序写4.2 顺序读4.3 文本行输入函数——写一行数据4.4 文本行输出函数——读一行数据4.5 格式化写入文件4.6 格式…

2025年人工智能与教育系统国际学术会议(ICAIES 2025)

重要信息 大会官网: www.icispp.com 大会时间:2025年3月14-16日 大会地点:中国-北京 简介 会议主题主要围绕教育创新与多媒体技术等相关研究领域展开讨论,旨在为相关领域的专家学者及企业发展人提供一个分享研究成果、讨论存…

使用 Certbot 自动获取和更新 Let‘s Encrypt SSL 证书

文章目录 引言一、什么是 Certbot?二、安装 Certbot2.1 在 Ubuntu/Debian 上安装 Certbot2.2 在 CentOS/RHEL 上安装 Certbot2.3 使用 Snap 安装 Certbot 三、获取 SSL 证书3.1 为 Nginx 获取 SSL 证书3.2 为 Apache 获取 SSL 证书3.3 手动获取 SSL 证书 四、自动更…

idea-gradle打包运行配置

最近接触了一个项目,使用gradle做为构建工具,这里记录一波,毕竟平时使用的都是maven idea 配置 这里有个坑,Gradle Wrapper,配置的地址gradle下载超时 这个配置修改成阿里的 第一张 第二张 第二张配置的jvm貌似没啥用…

AD(Altium Designer)器件封装——立创商城导出原理图和PCB完成器件封装操作指南

1、立创商城下载原理图和PCB图 1.1 打开立创商城 官网:www.SZLCSC.COM 1.2 寻找所需器件 以芯片为例 器件类——>芯片类——>对应芯片 1.3 确定所需芯片 确定芯片——>数据手册 1.4 打开原理图和PCB图 1:原理图 2:PCB 3:打开 1.5 导出原理图 操作

Kubernetes:EKS 中 Istio Ingress Gateway 负载均衡器配置及常见问题解析

引言 在云原生时代,Kubernetes 已经成为容器编排的事实标准。AWS EKS (Elastic Kubernetes Service) 作为一项完全托管的 Kubernetes 服务,简化了在 AWS 上运行 Kubernetes 的复杂性。Istio 作为服务网格领域的佼佼者,为微服务提供了流量管理…

【CUDA 】第4章 全局内存——4.4 核函数可达到的带宽(3展开转置)【补图】

CUDA C编程笔记 第四章 全局内存4.4 核函数可达到的带宽4.4.2.3 展开转置【为每个线程分配更独立的任务】 待解决的问题: 第四章 全局内存 4.4 核函数可达到的带宽 4.4.2.3 展开转置【为每个线程分配更独立的任务】 展开:提高转置内存带宽的利用率&a…

后端重载和重写的区别

重载 相同的方法名,形参数量不同或者参数顺序不同或者参数类型不同称为方法重载 重写 方法名和形参列表相同 重写方法前提:必须存在继承关系 (1)方法重载是:一个类中定义了多个方法名相同,而他们的参数的数量不同或数量相同而类型和次序不同,则称为方法…