当前位置: 首页 > news >正文

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.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

安装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、效率提升

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

相关文章:

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

Cursor实战:Web版背单词应用开发演示 需求分析自行编写需求文档借助Cursor生成需求文档 前端UI设计后端开发项目结构环境参数数据库设计安装Python依赖运行应用 前端代码修改测试前端界面 测试数据生成功能测试Bug修复 总结 在上一篇《Cursor AI编程助手不完全指南》…...

Kotlin Lambda

Kotlin Lambda 在探索Kotlin Lambda之前,我们先回顾下Java中的Lambda表达式,Java 的 Lambda 表达式是 Java 8 引入的一项强大的功能,它使得函数式编程风格的代码更加简洁和易于理解。Lambda 表达式允许你以一种更简洁的方式表示实现接口&…...

V4L2驱动之UVC

以下是关于V4L2摄像头驱动框架与UVC协议的关联分析,从内核驱动到用户空间的完整视角: 1. V4L2驱动框架核心架构 关键组件: 核心层 (V4L2 Core) v4l2_device:设备的总入口,管理所有子组件video_device:对应…...

numpy(01 入门)

前面内容:pandas(01 入门) 目录 一、numpy 简介 1.1 Numpy 应用场景 1.2 Numpy 优点 1.3 Numpy 缺点 1.4 相关链接 二、Numpy环境安装配置 2.1 Python自带包 2.2 Numpy 安装 三、NumPy.Ndarray 3.1 ndarray特点: 3.2 ndarray()参数&…...

Chatgpt论文润色指令整理

1. 内容润色 这个来自文章《three ways ChatGPT helps me in my academic writing》。 在输入你要润色的内容前,先输入以下内容来驯化chatgpt的身份: I’m writing a paper on [话题] for a leading [学科/杂志] academic journal. What I tried to s…...

vscode复制到下一行

linux中默认快捷键是ctrl shift alt down/up 但是在vscode中无法使用,应该是被其他的东西绑定了,经测试,可以使用windows下的快捷键shift alt down/up { “key”: “shiftaltdown”, “command”: “editor.action.copyLinesDownAction”…...

Python天梯赛刷题-五分题(上)

蓝桥杯题刷的好累,感觉零帧起手、以题带学真的会很吃力,打算重新刷一点天梯的题目巩固一下,我本人在算法非常不精通的情况下,自认为天梯的L1的题是会相对容易一些的,可能有一些没有脑子光靠力气的“硬推”hhhh。 从头…...

【优先级队列】任务分配

任务分配问题,有n个任务,每个任务有个达到时间。将这些任务分配给m个处理器,进行处理。每个处理器的处理时间不一样。处理器的任务列表有最大任务数限制。 分配任务的策略是:当前待分配的任务的处理时刻最小。如果处理时刻相同&am…...

设计模式之适配模式是什么?以及在Spring AOP中的拦截器链的使用源码解析。

前言 本文涉及到适配模式的基本用法,以及在Spring AOP中如何使用,首先需要了解适配模式的工作原理,然后结合Spring AOP的具体实现来详细详细解析源码。 首先,适配模式,也就是Adapter Pattern,属于结构型设计…...

Python 库自制 Cross-correlation 算法

Python 库自制 Cross-correlation 算法 引言正文引言 虽然 Scipy 库中包含了成熟的 Cross-correlation 算法,但是有些时候我们无法使用现成的库进行数据处理。这里介绍如何使用 Python 基础函数自制 Cross-correlation 算法。后续读者可以将该算法转换为其他各类语言。 正文…...

C++(23):为类成员函数增加this参数

C23允许指定类成员函数的第一个参数的this类型&#xff0c;从而更加便于函数重载&#xff1a; #include <iostream> using namespace std;class A{ public:void func(this A&){cout<<"in func1"<<endl;}void func(this const A&){cout<…...

javaSE学习笔记23-线程(thread)-总结

创建线程的三种方式 练习代码 package com.kuang.thread;import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.FutureTask;//回顾总结线程的创建 public class ThreadNew {public static void main(String[…...

【DeepSeek服务器部署全攻略】Linux服务器部署DeepSeek R1模型、实现API调用、搭建Web页面以及专属知识库

DeepSeek R1模型的Linux服务器搭建、API访问及Web页面搭建 1&#xff0c;引言2&#xff0c;安装Ollama工具3&#xff0c;下载DeepSeek R1 模型4&#xff0c;DeepSeek命令行对话5&#xff0c;DeepSeek API接口调用6&#xff0c;DeepSeek结合Web-ui实现图形化界面远程访问6.1&…...

【JAVA工程师从0开始学AI】,第四步:闭包与高阶函数——用Python的“魔法函数“重构Java思维

副标题&#xff1a;当严谨的Java遇上"七十二变"的Python函数式编程 历经变量战争、语法迷雾、函数对决&#xff0c;此刻我们将踏入Python最迷人的领域——函数式编程。当Java工程师还在用接口和匿名类实现回调时&#xff0c;Python的闭包已化身"智能机器人"…...

算法日记20:SC72最小生成树(prim朴素算法)

一、题目&#xff1a; 二、题解 2.1&#xff1a;朴素prim的步骤解析 O ( n 2 ) O(n^2) O(n2)(n<1e3) 0、假设&#xff0c;我们现在有这样一个有权图 1、我们随便找一个点&#xff0c;作为起点开始构建最小生成树(一般是1号)&#xff0c;并且存入intree[]状态数组中&#xf…...

玩转SpringCloud Stream

背景及痛点 现如今消息中间件(MQ)在互联网项目中被广泛的应用&#xff0c;特别是大数据行业应用的特别的多&#xff0c;现在市面上也流行这多个消息中间件框架&#xff0c;比如ActiveMQ、RabbitMQ、RocketMQ、Kafka等&#xff0c;这些消息中间件各有各的优劣&#xff0c;但是想…...

嵌入式经常用到串口,如何判断串口数据接收完成?

说起通信&#xff0c;首先想到的肯定是串口&#xff0c;日常中232和485的使用比比皆是&#xff0c;数据的发送、接收是串口通信最基础的内容。这篇文章主要讨论串口接收数据的断帧操作。 空闲中断断帧 一些mcu&#xff08;如&#xff1a;stm32f103&#xff09;在出厂时就已经在…...

iOS App的启动与优化

App的启动流程 App启动分为冷启动和热启动 冷启动&#xff1a;从0开始启动App热启动&#xff1a;App已经在内存中&#xff0c;但是后台还挂着&#xff0c;再次点击图标启动App。 一般对App启动的优化都是针对冷启动。 App冷启动可分为三个阶段&#xff1a; dyld&#xff1a…...

导出指定文件夹下的文件结构 工具模块-Python

python模块代码 import os import json import xml.etree.ElementTree as ET from typing import List, Optional, Dict, Union from pathlib import Path class DirectoryTreeExporter:def __init__(self,root_path: str,output_file: str,fmt: str txt,show_root: boo…...

Leetcode - 周赛436

目录 一、3446. 按对角线进行矩阵排序二、3447. 将元素分配给有约束条件的组三、3448. 统计可以被最后一个数位整除的子字符串数目四、3449. 最大化游戏分数的最小值 一、3446. 按对角线进行矩阵排序 题目链接 本题可以暴力枚举&#xff0c;在确定了每一个对角线的第一个元素…...

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多&#xff0c;如何一步解决&#xff0c;采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集&#xff08;每个目录代表一个类别&#xff0c;目录下是该类别的所有图片&#xff09;&#xff0c;你需要进行以下配置步骤&#x…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中&#xff0c;UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)

目录 一、&#x1f44b;&#x1f3fb;前言 二、&#x1f608;sinx波动的基本原理 三、&#x1f608;波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、&#x1f30a;波动优化…...

Android第十三次面试总结(四大 组件基础)

Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成&#xff0c;用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机&#xff1a; ​onCreate()​​ ​调用时机​&#xff1a;Activity 首次创建时调用。​…...

接口自动化测试:HttpRunner基础

相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具&#xff0c;支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议&#xff0c;涵盖接口测试、性能测试、数字体验监测等测试类型…...

GitHub 趋势日报 (2025年06月06日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...

Webpack性能优化:构建速度与体积优化策略

一、构建速度优化 1、​​升级Webpack和Node.js​​ ​​优化效果​​&#xff1a;Webpack 4比Webpack 3构建时间降低60%-98%。​​原因​​&#xff1a; V8引擎优化&#xff08;for of替代forEach、Map/Set替代Object&#xff09;。默认使用更快的md4哈希算法。AST直接从Loa…...