Cursor实战:Web版背单词应用开发演示
Cursor实战:Web版背单词应用开发演示
- 需求分析
- 自行编写需求文档
- 借助Cursor生成需求文档
- 前端UI设计
- 后端开发
- 项目结构
- 环境参数
- 数据库设计
- 安装Python依赖
- 运行应用
- 前端代码修改
- 测试前端界面
- 测试数据生成
- 功能测试
- Bug修复
- 总结
在上一篇《Cursor AI编程助手不完全指南》中,我们详细介绍了Cursor这款强大的AI编程工具。为了让大家能更直观地了解 Cursor 的实战应用价值,本文将通过一个实际项目来展示其开发流程。我们将使用 Cursor 开发一个 Web 版单词学习程序,通过这个案例,您将看到 AI 辅助开发的完整过程,体验从需求分析到代码实现的全过程。让我们开始这次实战之旅。
需求分析
在开始开发之前,明确的需求文档是项目成功的关键。一个好的需求文档不仅能指导开发方向,还能作为与 Cursor 进行高效对话的重要基础。我们有两种方式来准备需求文档:自行编写需求文档和借助 Cursor 生成需求文档。
自行编写需求文档
- 明确列出功能模块和具体需求
- 按优先级排序各项功能
- 将文档保存为独立文件,方便随时参考
- 确保描述清晰,避免歧义
借助Cursor生成需求文档
- 提供项目的核心目标和主要功能点
- 让AI协助完善功能描述和技术细节
- 根据实际需求进行调整和补充

摘抄部分功能内容,填充到自己的开发需求文档如下:
# 开发一个学单词的web程序## 核心功能需求### 学习模式- 从未学单词中挑选10个单词进行学习
- 单词卡片展示(拼写、音标、释义、例句)
- 发音功能
- 可以将当前词加入到错题本,进行复习### 复习模式- 从错词本中随机抽取单词进行复习### 用户管理- 用户免登录,可以设置用户名## 技术需求### 前端- 响应式设计,支持多端适配
- 流畅的交互体验,界面简洁美观### 后端- 如果需要用到后端程序,请使用python语言
- 如果需要用到数据库,请使用MySQL## 数据结构### 单词库- 单词基本信息(拼写、音标、发音音频、释义、例句)### 用户学习记录- 记录用户学习记录和错题信息
前端UI设计
使用 Cursor 的 COMPOSER 模式+ AGENT,以需求文档作为上下文,和 Cursor 对话,让其帮忙生成 UI 界面。
请根据我的需求文档,设计一个学单词的web界面,要求简洁美观

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

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


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


项目结构
Cursor 给出的后端项目结构:
app/├── models/│ └── models.py├── routes/│ └── word_routes.py├── utils/└── app.pyrequirements.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

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

根据提示,升级Flask版本:

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

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

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

这次启动成功:

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

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


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

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

添加单词报错:

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

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

加入错题本正常:

单词学完:

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


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

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


错题本终于也正常了:

总结
虽然这是一个相对简单的示例项目,但它展示了 AI 辅助开发的基本流程和方法。通过这次实践,我们可以总结以下几点经验:
1、交互策略
- 与Cursor进行清晰、具体的对话
- 将复杂需求拆分成小步骤
- 及时反馈和纠正AI的输出
2、效率提升
- 善用上下文管理,保持对话连贯性
- 复用已验证的代码片段
- 建立个人的提示词模板
相关文章:
Cursor实战:Web版背单词应用开发演示
Cursor实战:Web版背单词应用开发演示 需求分析自行编写需求文档借助Cursor生成需求文档 前端UI设计后端开发项目结构环境参数数据库设计安装Python依赖运行应用 前端代码修改测试前端界面 测试数据生成功能测试Bug修复 总结 在上一篇《Cursor AI编程助手不完全指南》…...
win10系统上的虚拟机安装麒麟V10系统提示找不到操作系统
目录预览 一、问题描述二、原因分析三、解决方案四、参考链接 一、问题描述 win10系统上的虚拟机安装麒麟V10系统提示找不到操作系统,报错:Operating System not found 二、原因分析 国产系统,需要注意的点: 需要看你的系统类…...
python subprocess库
subprocess subprocess 是 Python 标准库中的一个模块,用于创建和管理子进程。它允许你在 Python 程序中执行外部命令、调用其他程序,并与这些程序进行交互。subprocess 模块提供了丰富的功能,可以替代一些旧的模块和函数,如 os.…...
敏捷项目管理:适应快速变化的项目环境
一、敏捷项目管理的核心逻辑 敏捷项目管理是一种以迭代开发、快速响应变化、持续交付价值为核心的方法论,尤其适合需求频繁变更或市场环境不确定的项目。它的核心逻辑是**“小步快跑”**——将大目标拆解为多个短期可交付的成果,通过持续反馈和调整&…...
矿用机车移动逆变电源设计(论文+源码)
1总体方案设计 本课题为矿用机车移动逆变电源的硬件电路设计,其整个架构如图2.1所示包括了:380V三相交流电,逆变电路,高频变压器,24V直流输出,控制电路,驱动电路,保护电路等等。 在工作原理上&…...
前七章综合练习
一,拓扑图 二,实验要求 不限 三,实验步骤 第一步,搭建拓扑图 如上 注意: 第二步,配置IP trust: client1 client2 fw untrusrt-1: fw r3 电信DNS 百度web-1 untrust-2…...
二级指针略解【C语言】
以int** a为例 1.二级指针的声明 a 是一个指向 int*(指向整型的指针)的指针,即二级指针。 通俗的讲,a是一个指向指针的指针,对a解引用会是一个指针。 它可以用于操作动态分配的二维数组、指针数组或需要间接修改指针…...
环境变量2
目录 环境变量PATH 如何改变PATH 我们今天继续来学习环境变量2!!! 环境变量PATH PATH的作用是知道命令的搜索路径,我们都知道Linux上的命令行指令,ll,pwd什么的为什么我们写出来系统就知道是什么并且运…...
GoFound 与 MySQL 集成优化方案
GoFound 与 MySQL 集成优化方案 1. 明确需求 文章信息存储在 MySQL 数据库中。使用 GoFound 实现全文搜索功能。搜索时,先从 GoFound 中获取匹配的文章 ID,然后从 MySQL 中查询完整的文章信息。 2. 优化思路 数据同步:将 MySQL 中的文章数…...
数据录入与处理岗位
随着人工智能技术的迅猛发展,DeepSeek等先进AI系统正在逐步渗透到各个行业,工控行业也不例外。工控行业作为工业自动化的核心领域,涵盖了从生产线控制到设备维护的多个环节。然而,随着AI技术的不断进步,一些传统岗位正…...
cs106x-lecture11(Autumn 2017)-SPL实现
打卡cs106x(Autumn 2017)-lecture11 (以下皆使用SPL实现,非STL库,后续课程结束会使用STL实现) 1、diceRolls Write a recursive function named diceRolls accepts an integer representing a number of 6-sided dice to roll, and output all possibl…...
基于ffmpeg+openGL ES实现的视频编辑工具(一)
在深入钻研音视频编辑开发这片技术海洋时,相信不少开发者都和我有同样的感受:网络上关于音视频编辑工具实现的资料繁多,理论阐释细致入微,代码片段也随处可见。然而,一个显著的缺憾是,缺乏一个完整成型的 A…...
全面掌握Python时间处理
全面掌握Python时间处理 flyfish datetime: 最适合处理日期和时间,支持创建时间对象、格式化时间、计算时间差等。time: 提供了获取时间戳、将时间戳转换为本地时间、暂停程序执行等功能。timeit: 主要用于性能测试,帮助开发者了解某段代码的执行效率。…...
LLM 推理中推理-时间计算技巧
25年2月来自香港科技大学广州分校的论文“Bag of Tricks for Inference-time Computation of LLM Reasoning”。 随着大语言模型 (LLM) 的进步,解决复杂的推理任务越来越受到关注。推理-时间计算方法(例如 Best-of-N、波束搜索等)特别有价值…...
matplotlib 如何是的横坐标纵向显示
在 matplotlib 中,若要让横坐标标签纵向显示,可以使用 plt.xticks() 或 ax.set_xticklabels() 方法结合旋转参数来实现。 方法一:使用 plt.xticks() 当你使用 matplotlib 的 pyplot 接口&am…...
Go日期时间处理工具Carbon
**注意:**本文大部分内容摘抄自-https://github.com/dromara/carbon/blob/master/README.cn.md使用文档 一、简介 一个轻量级的、易于使用的、语义智能的日期时间处理库,支持链式调用,已被 awesome-go 收录,现已经捐赠给了 drom…...
【Spring生命周期】Bean元信息配置阶段
引言 本系列将详细讲解Spring生命周期的13个阶段,从源码角度帮助我们更好的理解Spring框架和bean生命周期全流程 Bean信息定义4种方式 API的方式Xml文件方式properties文件的方式注解的方式 在 Spring 框架中,Bean 元信息配置阶段是整个 Bean 生命周…...
linux有名管道的文件描述符3和4
在使用有名管道(Named Pipe,FIFO)时,返回的文件描述符 3 和 4 是通过 open() 系统调用打开有名管道后分配的文件描述符。文件描述符是进程用来访问打开的文件或管道的整数标识符。 1. 文件描述符的分配规则 文件描述符是一个非负整…...
Mobaxterm: Local port forwarding Remote port forwarding
文章目录 Remote port forwardingLocal port forwardingAppendix: Deploy clash in docker Remote port forwarding If you want to share the proxy on your local machine with the remote server, use Remote port forwarding. Consider this scenario: There is no proxy…...
DeepSeek模型快速部署教程-搭建自己的DeepSeek
前言:在人工智能技术飞速发展的今天,深度学习模型已成为推动各行各业智能化转型的核心驱动力。DeepSeek 作为一款领先的 AI 模型,凭借其高效的性能和灵活的部署方式,受到了广泛关注。无论是自然语言处理、图像识别,还是…...
分布式之分布式ID
目录 需求 1. 全局唯一性 2. 高性能 3. 高可用性 4. 可扩展性 5. 有序性 6. 时间相关 7. 长度适中 8. 安全性 9. 分布式一致性 10. 易于集成 常见解决方案 选择依据 数据库号段模式 核心概念 工作流程 优点 缺点 实现示例 优化策略 适用场景 Snowflake雪…...
2025/2/19机试准备
1.%c不忽略空格( ) 2.启示 #include <stdio.h> #include <string.h> int main(){char str[100]{0};int x,y;int n1,n2,n3;int i;while(scanf("%s",str)!EOF){istrlen(str);if(i%30){//12446-2n1i/3;n3i/3;n2i/32;}else if(i%31){…...
用友U8 固定资产-批量变动单
前提:没有结账,没有结账,没有结账 如果已经结账,可反结账 1.需要先计提折旧,操作路径是点击【固定资产】-【计提折旧】-计提本月折旧 2.进行资产减少操作,点击【资产处置】-【资产减少】,如…...
基于golang语言开发publicChain项目实战教程
概述:简易公链 任何公链只要涉及转账都会用到UTXO,UTXO并不是面向对象的思维,通过计算如何去打包多笔交易,各种加密算法,钱包 如何生成地址,节点A,节点B,节点C,节点分全节点,钱包节点ÿ…...
Jtti.cc:CentOS下PyTorch运行出错怎么办
在CentOS上运行PyTorch时遇到错误,可以按照以下步骤进行排查和解决: 1. 检查Python版本 Python版本:确保Python版本符合PyTorch要求(如3.6-3.9)。 虚拟环境:建议使用虚拟环境隔离依赖。 python3 -m venv myenv source myenv/bin/a…...
基于微信小程序的电影院订票选座系统的设计与实现,SSM+Vue+毕业论文+开题报告+任务书+指导搭建视频
本系统包含用户、管理员两个角色。 用户角色:注册登录、查看首页电影信息推荐、查看电影详情并进行收藏预定、查看电影资讯、在线客服、管理个人订单等。 管理员角色:登录后台、管理电影类型、管理放映厅信息、管理电影信息、管理用户信息、管理订单等。…...
自然语言处理NLP 02统计语言模型
目录 jieba中文分词 TF-IDF TF(词频,Term Frequency) IDF(逆文档频率,Inverse Document Frequency) 总结 案例:从文本数据中提取并分析关键词的重要性 jieba中文分词 jieba 是一个强大的…...
【环降噪实验】详细介绍
环降噪实验(Circumferential Noise Cancellation Experiment)通常指在工程领域中,特别是在噪声控制领域,通过模拟或实际环形噪声传播的环境来验证和测试不同噪声消除技术的效果。其主要目标是在特定区域或环境中,利用主…...
Qt开发④Qt常用控件_上_QWdget属性+按钮类控件
目录 1. 控件概述和发展 2. QWidget 核心属性 2.1 核心属性概览 2.2 enabled 是否可用 2.3 geometry 位置尺寸 2.4 windowTitle 标题 2.5 windowIcon 图标 2.6 windowOpacity 不透明度 2.7 cursor 光标 2.8 font 字体 2.9 toolTip 鼠标悬停提示 2.10 focusPolicy 焦…...
FreeSwitch之mod_cidlookup 和 mod_blacklist和mod_curl的抉择
FreeSWITCH 的 mod_curl 模块是一个用于通过 HTTP/HTTPS 协议与外部服务进行交互的核心模块。它允许 FreeSWITCH 在呼叫处理过程中发起 HTTP 请求(如 GET、POST 等),并将响应结果集成到呼叫流程中。以下是关于 mod_curl 的详细介绍࿱…...
