AI编程③:后端与数据库

一、前端与后端——餐厅的“前厅”与“后厨”

想象一下你去一家餐厅吃饭:

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

前端和后端怎么“沟通”呢?——靠API (应用程序接口)

AI编程③:后端与数据库657


API就像餐厅里的**“服务员”或者厨房的“传菜口”**。

  • 你(前端用户)跟服务员(API)说:“我要一份宫保鸡丁(请求数据)。”
  • 服务员(API)把订单传给后厨(后端)。
  • 后厨(后端)做好了宫保鸡丁(处理数据)。
  • 服务员(API)再把菜端给你(返回结果)。

跟Cursor说API,可以这样: “我需要一个API接口,前端通过这个接口把新用户的注册信息发给后端。”

前后端对接的“暗号”(约定):
为了让“服务员”和“后厨”高效配合,他们会约定好一些“暗号”,比如点菜用什么单子,菜做好了怎么通知。

  • 统一的返回值格式:比如,后厨每次给服务员递东西,都会附上一张小纸条,写着“成功”或“失败”,如果失败了还会写原因。

JSON
{
"success": true, // true表示成功, false表示失败
"data": {"userName": "test"}, // 成功时,这里是具体数据
"message": "ok" // 一些提示信息
}

 

二、后端开发——强大的“后厨”支持

后端是用户看不见的部分,负责处理数据、执行命令、保证一切顺利运行。

后端开发三要素(类比餐厅后厨):

  1. 功能 (厨师做菜):处理请求、执行业务逻辑、返回响应。
  • 比如用户注册,后端就要验证信息、保存数据。
  1. API设计 (服务员接单送餐):定义前端和后端如何“对话”的接口。
  • 规定了点什么菜(请求什么数据),用什么格式点(请求格式),菜做好了怎么上(响应格式)。
  1. 数据处理 (食材管理和烹饪过程):与数据库打交道,处理和转换数据。
  • 比如从仓库(数据库)取食材(数据),清洗加工(处理转换)。

AI编程③:后端与数据库1357

 

向Cursor描述后端需求时,可以从这几方面入手:

 API设计的表达 (服务员怎么接单?)

模糊表达: “需要一个用户API。”

清晰表达 (以用户管理API为例):
“需要新增用户管理API,包含以下接口:

  1. 用户注册:
  • 端点 (接口地址):POST /api/users/register (POST表示提交数据)
  • 请求参数 (前端要发给后端的东西):姓名、密码、性别
  • 是否需要用户登录:否
  • 功能

     验证用户名是否存在

     保存用户信息到数据库

 

  • 返回 (后端回给前端的东西):成功信息,或者失败原因。
  1. 用户登录:
  • 端点:POST /api/users/login
  • 请求参数:账号 (用户名或邮箱)、密码
  • 是否需要用户登录:否
  • 功能
  • 返回:成功时返回用户信息和令牌 (一种身份凭证),失败时返回原因。
  1. 获取用户资料:
  • 端点:GET /api/users/{userId} (GET表示获取数据,{userId}是用户的唯一标识)
  • 是否需要用户登录:是
  • 功能:
  • 返回:用户的完整信息。

 

 

三、后端常用语言及框架

  • Python  flask框架
  • Java  spring-boot 框架
  • Php thinkphp 框架

等等

Python 安装教程

四、数据库基础——餐厅的“大仓库”

数据库就是应用程序的**“数据大仓库”或“超级档案柜”**,专门用来有条理地存储和管理所有数据。

数据库的两种主要类型 (两种不同的仓库管理方式):

  1. 关系型数据库 (例如 MySQL, PostgreSQL):
  • 像Excel表格一样,数据存在一张张表里。
  • 表和表之间可以有关联 (比如“订单表”通过“用户ID”关联到“用户表”)。
  • 用一种叫SQL的语言来查询数据 (就像给仓库管理员下指令:“帮我找出所有姓张的客户订单”)。
  1. 非关系型数据库 (例如 MongoDB, Redis):
  • 存储方式更灵活,不像关系型数据库那样结构固定。
  • 有的像一个个文档(MongoDB),有的像键值对 (Redis,比如 用户名: 张三)。
  • 通常不需要预先定好所有结构,查询语言也各有不同。

数据库的核心概念 (仓库里的基本元素):

  • 表/集合 (Table/Collection):存放特定类型数据的“货架”或“文件夹”。(比如“用户表”、“商品表”)
  • 记录/文档 (Record/Document):表/集合中的一个“具体物件”或“具体文件”。(比如“用户张三的记录”、“商品A的记录”)
  • 字段/属性 (Field/Attribute):记录/文档中的一个“具体信息项”。(比如用户记录里的“姓名”、“年龄”、“邮箱”)
  • 索引 (Index):为了提高查找速度做的“目录”或“标签”。(比如给“用户表的邮箱字段”建索引,就能超快地通过邮箱找到用户)
  • 关系 (Relation):表/集合之间的“连接”。(比如订单属于哪个用户)

数据库操作的表达 (怎么跟仓库管理员说你要存取东西?)
数据库操作最核心的就是CRUD

  • C (Create):创建(往仓库里放新东西)
  • R (Read):读取(从仓库里找东西)
  • U (Update):更新(修改仓库里已有的东西)
  • D (Delete):删除(从仓库里扔东西)

数据库安装

 

 

创建数据库

AI编程③:后端与数据库2741

AI编程③:后端与数据库2743

AI编程③:后端与数据库2745

AI编程③:后端与数据库2747

代码中的配置,记住三个

  • 你数据库所在的IP地址
  • 数据库的账号和密码
  • 你的数据库名称

AI编程③:后端与数据库2791

 

 

 

查看数据

当你安装完数据库的客户端工具,比如 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表示提交数据)

○ 请求参数 (前端要发给后端的东西): 姓名、电子邮箱、主题、消息

○ 是否需要用户登录:否

○ 功能

     验证姓名、邮箱、消息必填

     保存联系方式到数据库

○ 返回 (后端回给前端的东西): 成功信息,或者失败原因。

使用以下通用的返回结构来返回数据

{
"success": true, // true表示成功, false表示失败
"data": {"userName": "test"}, // 成功时,这里是具体数据
"message": "ok" // 一些提示信息
}

 

posted @ 2025-09-11 17:13  周大福001  阅读(144)  评论(0)    收藏  举报