AI编程③:后端与数据库
一、前端与后端——餐厅的“前厅”与“后厨”
想象一下你去一家餐厅吃饭:
- 前端 (Frontend):就是餐厅的**“前厅”**,你直接看到和接触到的部分。
- 比如:漂亮的装修、菜单、服务员、你的餐桌。
- 在网站/App里:你在浏览器或手机上看到的页面、按钮、图片、文字、交互动画等。
- 核心职责:给用户看,让用户点点点。
- 主要技术(你不用深究,Cursor会搞定,但了解下有助于沟通):HTML (骨架)、CSS (打扮)、JavaScript (让它动起来)。
- 跟Cursor说前端,可以这样:“我想要一个用户注册页面,上面要有用户名输入框、密码输入框、一个注册按钮,整体风格要简洁大气,主色调用蓝色。”
- 后端 (Backend):就是餐厅的**“后厨”和“管理系统”**,你看不见,但它支撑着整个餐厅的运作。
- 比如:厨师做菜、食材采购与存储、订单处理、收银系统。
- 在网站/App里:处理用户请求(比如注册、登录)、操作数据(比如保存用户信息、查询商品价格)、执行复杂的业务逻辑。
- 核心职责:处理数据,实现功能。
- 主要技术(同样,Cursor会帮你):各种编程语言 (Python, Java, Node.js等)、服务器、数据库。
- 跟Cursor说后端,可以这样:“当用户点击注册按钮后,后端需要检查用户名是否已存在,如果不存在,就把用户信息(用户名、加密后的密码)保存到数据库里,然后告诉前端注册成功。”
前端和后端怎么“沟通”呢?——靠API (应用程序接口)

API就像餐厅里的**“服务员”或者厨房的“传菜口”**。
- 你(前端用户)跟服务员(API)说:“我要一份宫保鸡丁(请求数据)。”
- 服务员(API)把订单传给后厨(后端)。
- 后厨(后端)做好了宫保鸡丁(处理数据)。
- 服务员(API)再把菜端给你(返回结果)。
跟Cursor说API,可以这样: “我需要一个API接口,前端通过这个接口把新用户的注册信息发给后端。”
前后端对接的“暗号”(约定):
为了让“服务员”和“后厨”高效配合,他们会约定好一些“暗号”,比如点菜用什么单子,菜做好了怎么通知。
- 统一的返回值格式:比如,后厨每次给服务员递东西,都会附上一张小纸条,写着“成功”或“失败”,如果失败了还会写原因。
|
JSON |
二、后端开发——强大的“后厨”支持
后端是用户看不见的部分,负责处理数据、执行命令、保证一切顺利运行。
后端开发三要素(类比餐厅后厨):
- 功能 (厨师做菜):处理请求、执行业务逻辑、返回响应。
- 比如用户注册,后端就要验证信息、保存数据。
- API设计 (服务员接单送餐):定义前端和后端如何“对话”的接口。
- 规定了点什么菜(请求什么数据),用什么格式点(请求格式),菜做好了怎么上(响应格式)。
- 数据处理 (食材管理和烹饪过程):与数据库打交道,处理和转换数据。
- 比如从仓库(数据库)取食材(数据),清洗加工(处理转换)。

向Cursor描述后端需求时,可以从这几方面入手:
API设计的表达 (服务员怎么接单?)
❌ 模糊表达: “需要一个用户API。”
✅ 清晰表达 (以用户管理API为例):
“需要新增用户管理API,包含以下接口:
- 用户注册:
- 端点 (接口地址):POST /api/users/register (POST表示提交数据)
- 请求参数 (前端要发给后端的东西):姓名、密码、性别
- 是否需要用户登录:否
- 功能
验证用户名是否存在
保存用户信息到数据库
- 返回 (后端回给前端的东西):成功信息,或者失败原因。
- 用户登录:
- 端点:POST /api/users/login
- 请求参数:账号 (用户名或邮箱)、密码
- 是否需要用户登录:否
- 功能
- 返回:成功时返回用户信息和令牌 (一种身份凭证),失败时返回原因。
- 获取用户资料:
- 端点:GET /api/users/{userId} (GET表示获取数据,{userId}是用户的唯一标识)
- 是否需要用户登录:是
- 功能:
- 返回:用户的完整信息。
三、后端常用语言及框架
- Python flask框架
- Java spring-boot 框架
- Php thinkphp 框架
等等
Python 安装教程
四、数据库基础——餐厅的“大仓库”
数据库就是应用程序的**“数据大仓库”或“超级档案柜”**,专门用来有条理地存储和管理所有数据。
数据库的两种主要类型 (两种不同的仓库管理方式):
- 关系型数据库 (例如 MySQL, PostgreSQL):
- 像Excel表格一样,数据存在一张张表里。
- 表和表之间可以有关联 (比如“订单表”通过“用户ID”关联到“用户表”)。
- 用一种叫SQL的语言来查询数据 (就像给仓库管理员下指令:“帮我找出所有姓张的客户订单”)。
- 非关系型数据库 (例如 MongoDB, Redis):
- 存储方式更灵活,不像关系型数据库那样结构固定。
- 有的像一个个文档(MongoDB),有的像键值对 (Redis,比如 用户名: 张三)。
- 通常不需要预先定好所有结构,查询语言也各有不同。
数据库的核心概念 (仓库里的基本元素):
- 表/集合 (Table/Collection):存放特定类型数据的“货架”或“文件夹”。(比如“用户表”、“商品表”)
- 记录/文档 (Record/Document):表/集合中的一个“具体物件”或“具体文件”。(比如“用户张三的记录”、“商品A的记录”)
- 字段/属性 (Field/Attribute):记录/文档中的一个“具体信息项”。(比如用户记录里的“姓名”、“年龄”、“邮箱”)
- 索引 (Index):为了提高查找速度做的“目录”或“标签”。(比如给“用户表的邮箱字段”建索引,就能超快地通过邮箱找到用户)
- 关系 (Relation):表/集合之间的“连接”。(比如订单属于哪个用户)
数据库操作的表达 (怎么跟仓库管理员说你要存取东西?)
数据库操作最核心的就是CRUD:
- C (Create):创建(往仓库里放新东西)
- R (Read):读取(从仓库里找东西)
- U (Update):更新(修改仓库里已有的东西)
- D (Delete):删除(从仓库里扔东西)
数据库安装
创建数据库




代码中的配置,记住三个
- 你数据库所在的IP地址
- 数据库的账号和密码
- 你的数据库名称

查看数据
当你安装完数据库的客户端工具,比如 Navicat,你就可以使用Navicat来查看数据库里面的数据了
五、前后端实战
初始化一个后端项目,我们使用python 的 flask框架
awesome-cursor-rules-mdc/rules-mdc/flask.mdc at main · sanjeed5/awesome-cursor-rules-mdc
|
根据rules初始化一个flask项目,数据库使用mysql, 链接地址127.0.0.1:3306, 账号密码:root/xy@123456,数据库名称:ai_test |
|
前端提示词: 需要创建一个联系表单,包含以下元素: • 表单标题: ‘联系我们’ (24px粗体,居中显示)。 • 姓名输入框: ○ 标签:‘您的姓名’ ○ 类型:文本输入框 ○ 验证:必填项,最少2个字符 ○ 占位文本 (输入框里预先显示的灰色提示字):‘请输入您的姓名’ • 电子邮箱输入框: ○ 标签:‘电子邮箱’ ○ 类型:邮箱输入框 ○ 验证:必填项,必须是有效的邮箱格式 ○ 占位文本:‘example@domain.com’ • 主题下拉菜单: ○ 标签:‘咨询主题’ ○ 选项:‘产品咨询’、‘技术支持’、‘投诉建议’、‘其他’ ○ 默认值:‘产品咨询’ • 消息文本区: ○ 标签:‘您的留言’ ○ 类型:多行文本区 ○ 验证:必填项,最多500字符 ○ 占位文本:‘请详细描述您的问题或建议…’ • 提交按钮: ○ 文本:‘发送消息’ ○ 样式:蓝色背景,白色文字,圆角边框 ○ 悬停效果 (鼠标放上去时):深蓝色背景 使用的后端接口为/api/forms/submit 参数为: 返回值为: |
|
后端提示词: 我需要做一个添加联系方式的功能,有如下API接口: 1. 创建联系表单: ○ 端点 (接口地址): POST /api/forms/submit (POST表示提交数据) ○ 请求参数 (前端要发给后端的东西): 姓名、电子邮箱、主题、消息 ○ 是否需要用户登录:否 ○ 功能 验证姓名、邮箱、消息必填 保存联系方式到数据库 ○ 返回 (后端回给前端的东西): 成功信息,或者失败原因。 使用以下通用的返回结构来返回数据 { |

浙公网安备 33010602011771号