Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

新手常见问题速查(2025版)

核心理念: 遇到问题不要慌,看懂报错 → 问 AI → 验证方案 → 解决问题。


📖 本节目标

学完本节,你将能够:

  • ✅ 看懂常见报错信息(不再害怕红色文字)
  • ✅ 知道如何高效地问 AI
  • ✅ 快速定位是哪个环节出了问题
  • ✅ 掌握自我调试的基本方法

预计用时: 30 分钟(随时查阅)


🎯 使用方法

这是一个速查手册,不需要从头到尾看。

使用场景:

  1. 遇到报错 → 复制关键错误信息 → 按 Ctrl+F 搜索本文档
  2. 找到类似问题 → 理解报错原因 → 参考解决方案
  3. 还没解决 → 用本文档的“如何问 AI“模板提问

🖥️ 预备知识:在哪里输入命令?

如果你是零基础,先看这里!

什么是“终端/命令行“?

终端 = 和电脑对话的地方(就像微信聊天框,但更强大)

打开方式:

Windows 用户(三选一):

  1. Win + R → 输入 cmd → 回车(打开命令提示符)
  2. Win + R → 输入 powershell → 回车(推荐,更强大)
  3. 在 VS Code 底部点击“终端“标签(最方便)

Mac 用户:

  1. Cmd + 空格 → 输入 terminal → 回车
  2. 在 VS Code 底部点击“终端“标签(推荐)

标准格式说明:

$ python --version
  • $ 符号:不需要输入,这只是代表“这是一行命令“
  • python --version:这才是你要输入的内容

你会看到的结果:

Python 3.11.5

放轻松! 输入命令不会弄坏电脑(最多就是看到报错,关掉重来就好)


1. 环境配置问题(最常见!)

❌ 错误 1: command not found: python'python' 不是内部或外部命令

报错场景:

$ python --version
command not found: python

原因:

  • Python 没安装
  • Python 已安装但环境变量未配置

快速诊断:

# Windows
where python

# Mac/Linux
which python
which python3

解决方案:

方案1: Python 没装 → 重新安装 Python,勾选 “Add Python to PATH”

方案2: 已安装但找不到:

Windows(推荐:重装更简单):

简单方式(推荐给新手):

  1. 卸载 Python(控制面板 → 程序和功能 → 卸载 Python)
  2. 重新下载安装包
  3. 安装时务必勾选 “Add Python to PATH”(在第一个安装界面的底部)
  4. 完成后,重启终端验证:python --version

手动配置方式(如果不想重装):

⚠️ 这个操作有点复杂!如果你是第一次接触,建议用上面的重装方式。

  1. 找到 Python 安装路径(通常在这里):

    C:\Users\你的用户名\AppData\Local\Programs\Python\Python311\
    

    不确定?右键桌面 Python 图标 → 打开文件所在位置

  2. 设置环境变量(跟着图文教程走更保险):

    • 右键“此电脑“ → 属性 → 高级系统设置 → 环境变量
    • 找到“系统变量“区域的 Path,双击打开
    • 点击“新建“,添加两个路径(记得改成你自己的用户名):
      • C:\Users\你的用户名\AppData\Local\Programs\Python\Python311\
      • C:\Users\你的用户名\AppData\Local\Programs\Python\Python311\Scripts\
    • 一路“确定“保存
  3. 重启终端(必须!否则不生效)

看不懂? 参考图文教程:

Mac:

# 使用 python3
python3 --version

# 或者创建别名(添加到 ~/.zshrc 或 ~/.bash_profile)
alias python=python3

如何问 AI:

我安装了 Python 3.11,但在终端输入 python --version 显示 "command not found"。
我的系统是 [Windows 11 / macOS 14]。
我已经尝试了:[列出你尝试的方法]
请帮我排查问题。

❌ 错误 2: ModuleNotFoundError: No module named 'fastapi'

报错场景:

$ python main.py
ModuleNotFoundError: No module named 'fastapi'

原因排查(按优先级):

原因1: 虚拟环境没激活(90% 的情况!)

什么是虚拟环境?(用比喻理解)

虚拟环境 = 手机的应用分身(App Clone)

  • 就像你可以在手机上装两个微信(工作号+个人号),它们的数据互不影响
  • 虚拟环境让你的每个项目有独立的“工具箱“,避免不同项目的工具版本打架
  • 好处: 项目 A 用的工具不会影响项目 B,删掉一个项目不会搞乱其他项目

你只需要记住两件事:

  1. 每次开始写代码前,要“激活虚拟环境“(就像打开应用分身)
  2. 激活成功后,终端前面会出现 (venv) 标记(就像手机通知栏的图标)

参考资料: Python 虚拟环境详解(菜鸟教程) | 为什么需要虚拟环境(知乎)

# 检查虚拟环境是否激活
# 终端前面应该有 (venv) 标记

# 如果没有,激活虚拟环境
# Windows
venv\Scripts\activate

# Mac/Linux
source venv/bin/activate

原因2: Python 解释器选错了

在 VS Code 中:

  1. Ctrl+Shift+P(Mac: Cmd+Shift+P
  2. 输入 “Python: Select Interpreter”
  3. 选择 ./venv/Scripts/python.exe./venv/bin/python

原因3: 真的没装

# 确认虚拟环境已激活后
pip install fastapi uvicorn[standard]

# 验证安装
# Mac/Linux 用这个(grep 是筛选命令,| 是管道符号,在键盘 Enter 键上方)
pip list | grep fastapi

# Windows 用这个(findstr 是 Windows 的筛选命令)
pip list | findstr fastapi

# 如果 Windows 报错,直接看完整列表也行
pip list

小白贴士: 看到 | 这个竖线不用紧张,它叫“管道符号“,作用是“把前面命令的结果传给后面的命令“。你只需要照着输入就行,不需要理解原理。

原因4: 有多个 Python 环境混乱

# 查看当前使用的 Python
which python  # Mac/Linux
where python  # Windows

# 查看当前使用的 pip
which pip  # Mac/Linux
where pip  # Windows

# 如果不匹配,用完整路径安装
python -m pip install fastapi

如何问 AI:

我遇到 ModuleNotFoundError: No module named 'fastapi'。

我的环境信息:
- Python 版本:[运行 python --version 的结果]
- pip 版本:[运行 pip --version 的结果]
- 虚拟环境是否激活:[是/否,终端是否有 (venv) 标记]
- VS Code 选择的解释器:[./venv/... 还是系统 Python]

我已经尝试:
- [x] pip install fastapi(结果:[成功/失败/报错信息])
- [ ] 激活虚拟环境
- [ ] 重新选择 Python 解释器

请帮我排查问题。

❌ 错误 3: 虚拟环境激活后没有 (venv) 标记

报错场景:

$ source venv/bin/activate
# 终端前面没有出现 (venv) 标记

原因:

  • Shell 配置问题(某些终端主题会隐藏)
  • 虚拟环境创建失败

验证是否真的激活:

# 运行这个命令
which python  # Mac/Linux
where python  # Windows

# 如果返回虚拟环境路径(包含 venv),说明已激活
# 例如:/Users/你的名字/my-backend/venv/bin/python

解决方案:

如果 which python 指向虚拟环境,说明已经激活成功,只是没显示而已。继续工作即可。

如果不是,重新创建虚拟环境:

# 删除旧的虚拟环境
rm -rf venv  # Mac/Linux
rmdir /s venv  # Windows

# 重新创建
python -m venv venv

# 激活
source venv/bin/activate  # Mac/Linux
venv\Scripts\activate  # Windows

❌ 错误 4: pip install 下载很慢或超时

报错场景:

$ pip install fastapi
ReadTimeoutError: HTTPSConnectionPool...

原因: 网络问题或国外源太慢

解决方案: 使用国内镜像源

# 方法1: 临时使用(单次安装)
pip install -i https://mirrors.aliyun.com/pypi/simple/ fastapi

# 方法2: 永久配置(推荐)
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/

# 验证配置
pip config list

# 之后安装就快了
pip install fastapi uvicorn[standard]

其他国内镜像:

  • 阿里云:https://mirrors.aliyun.com/pypi/simple/
  • 清华大学:https://pypi.tuna.tsinghua.edu.cn/simple/
  • 中科大:https://pypi.mirrors.ustc.edu.cn/simple/

2. FastAPI 运行问题

❌ 错误 5: ERROR: Could not find a version that satisfies uvicorn[standard]

报错场景:

$ pip install uvicorn[standard]
ERROR: Could not find a version...

原因: Windows CMD 不支持方括号

解决方案:

# Windows CMD 用引号
pip install "uvicorn[standard]"

# 或者分开安装
pip install uvicorn

❌ 错误 6: Address already in use (端口被占用)

报错场景:

$ python main.py
ERROR: [Errno 48] Address already in use

原因: 8000 端口被其他程序占用(或之前的进程没关闭)

解决方案:

方法1: 换个端口

# main.py
if __name__ == "__main__":
    import uvicorn
    uvicorn.run("main:app", host="0.0.0.0", port=8001, reload=True)  # 改成 8001

方法2: 杀掉占用端口的进程

# Mac/Linux
lsof -i :8000  # 查看占用 8000 端口的进程
kill -9 <PID>  # 杀掉进程(PID 是上面查到的进程号)

# Windows
netstat -ano | findstr :8000  # 查看占用 8000 端口的进程
taskkill /PID <PID> /F  # 杀掉进程

❌ 错误 7: 访问 /docs 显示 404 Not Found

报错场景: 访问 http://localhost:8000/docs 显示 404

原因排查:

原因1: 拼写错误

  • 正确:/docs(有 s)
  • 错误:/doc(没 s)

原因2: FastAPI 版本太旧

# 升级 FastAPI
pip install --upgrade fastapi

原因3: 禁用了文档

检查代码:

# ❌ 错误:禁用了文档
app = FastAPI(docs_url=None, redoc_url=None)

# ✅ 正确:启用文档
app = FastAPI()

❌ 错误 8: Pydantic 验证错误 value is not a valid email address

报错场景:

{
  "detail": [
    {
      "loc": ["body", "email"],
      "msg": "value is not a valid email address",
      "type": "value_error.email"
    }
  ]
}

原因: 邮箱格式不正确

理解报错:

  • loc: 错误位置(body 表示请求体,email 表示 email 字段)
  • msg: 错误信息(邮箱格式不对)
  • type: 错误类型

解决方案:

检查请求数据:

{
  "username": "zhangsan",
  "password": "123456",
  "email": "not-an-email"  // ❌ 缺少 @
}

// 改成
{
  "username": "zhangsan",
  "password": "123456",
  "email": "[email protected]"  // ✅ 正确格式
}

如何问 AI:

我的 FastAPI 接口返回 Pydantic 验证错误。

报错信息:
[粘贴完整的 JSON 报错]

我的数据模型:
[粘贴 Pydantic BaseModel 代码]

我发送的请求数据:
[粘贴请求 JSON]

请帮我找出哪里格式不对。

3. CORS 跨域问题

❌ 错误 9: CORS policy: No 'Access-Control-Allow-Origin' header

报错场景: 前端调用后端 API 时,浏览器控制台显示:

Access to fetch at 'http://localhost:8000/api/...' from origin 'http://localhost:3000'
has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present...

原因: 前端(http://localhost:3000)和后端(http://localhost:8000)域名不同,浏览器默认禁止跨域请求

理解 CORS(用比喻):

CORS = 小区保安的通行证制度

  • 你住在 A 栋(前端网站 localhost:3000),想去 B 栋(后端服务器 localhost:8000)取快递
  • 小区保安(浏览器)拦住你:“不同栋之间不能随便串门!”
  • 你需要 B 栋业主(后端服务器)给你开一张通行证(CORS 配置),保安看到后才放行

为什么浏览器要拦截?

  • 保护你的安全!防止恶意网站偷你在其他网站的数据
  • 类比:防止陌生人冒充你去银行取钱

重要提示: 跨域限制只存在于浏览器环境,所以用 Postman 测试 API 时不会遇到这个问题

参考资料: CORS 跨域详解(阮一峰) | MDN CORS 文档

解决方案:

在 FastAPI 中配置 CORS:

from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware

app = FastAPI()

# 添加 CORS 中间件(复制这段代码,让 AI 帮你调整细节)
app.add_middleware(
    CORSMiddleware,
    allow_origins=[
        "http://localhost:3000",      # 开发环境前端地址
        "https://your-app.vercel.app" # 生产环境前端地址(改成你的)
    ],
    allow_credentials=True,
    allow_methods=["*"],  # 允许所有 HTTP 方法(GET、POST、PUT、DELETE 等)
    allow_headers=["*"],  # 允许所有请求头
)

小白贴士:

  • allow_origins=["*"] 中的 * 表示“允许所有来源“,但生产环境绝对禁用(不安全)
  • 开发时可以临时用 ["*"] 快速测试,但部署前必须改成具体的域名
  • 不理解代码细节没关系,直接复制使用,或者让 AI 帮你生成

测试环境快速修复(允许所有域名,仅限开发!):

app.add_middleware(
    CORSMiddleware,
    allow_origins=["*"],  # ⚠️ 生产环境禁用!
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)

4. Supabase 连接问题

❌ 错误 10: Connection refusedcould not translate host name

报错场景:

supabase.table('users').select("*").execute()
# 报错: Connection refused

原因排查(2025 最新):

原因1: 暴力破解保护(最常见!)

  • Supabase 会临时封禁频繁失败的连接(30分钟)
  • 可能是密码错了多次

解决方案: 等待 30 分钟,或检查密码是否正确

原因2: IPv6 支持问题

  • Supabase 默认连接需要 IPv6
  • 如果网络不支持 IPv6,会连接失败

解决方案: 使用连接池模式(IPv4)

# 不用直接连接,改用连接池
SUPABASE_URL = "https://xxx.supabase.co"  # 不变
# 连接池 URL(从 Supabase 项目设置 → Database → Connection pooling 获取)

原因3: 密码中有特殊字符

  • 密码中的 @#& 等字符会破坏 URL

解决方案: 用 Supabase SDK(不用 URL 连接字符串)

from supabase import create_client

# ✅ 推荐方式(自动处理特殊字符)
supabase = create_client(
    supabase_url="https://xxx.supabase.co",
    supabase_key="你的 anon key"
)

原因4: 网络问题

  • 检查是否能访问 https://你的项目ID.supabase.co

❌ 错误 11: 401 Unauthorized (Supabase 权限错误)

报错场景:

supabase.table('users').select("*").execute()
# 返回: 401 Unauthorized

原因: Supabase 默认开启了 RLS(行级安全策略)

理解 RLS(用比喻):

RLS = 银行金库的门禁系统

  • 金库默认对所有人上锁(包括你自己的后端代码)
  • 你需要设置一条“通行规则“(Policy),告诉金库:“这个人可以进来”
  • Supabase 的安全理念: “默认拒绝一切,明确允许才放行”

开发阶段怎么办?

  • 可以临时关掉 RLS 快速测试(就像暂时不锁门)
  • 但上线前必须重新打开并设置正确的规则(否则数据裸奔!)

解决方案:

方法1: 临时禁用 RLS(开发环境,快速测试)

  1. 打开 Supabase 项目
  2. 左侧菜单 → Authentication → Policies
  3. 找到 users 表 → 点击 “Disable RLS”

⚠️ 警告: 生产环境一定要启用 RLS!

方法2: 设置 Policy(生产环境推荐)

  1. 左侧菜单 → Authentication → Policies
  2. 点击 “New Policy”
  3. 选择 “Enable read access for all users”
  4. 保存

5. JWT 认证问题(2025 最佳实践)

❌ 错误 12: Token 无效或已过期

报错场景:

{
  "detail": "Token 无效或已过期"
}

原因: Token 过期或格式错误

如何调试:

  1. 检查 Token 是否过期

访问 jwt.io,粘贴你的 Token,查看 exp 字段(过期时间)

  1. 检查 Token 格式
# 正确格式(三段,用 . 分隔)
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxMjN9.abc123

# 错误格式(缺少 Bearer 或多了空格)
Bearer  eyJhbGci...  # ❌ Bearer 后面多了空格
eyJhbGci...  # ❌ 缺少 Bearer
  1. 检查前端发送方式
// ✅ 正确
fetch('/api/users/profile', {
  headers: {
    'Authorization': `Bearer ${token}`  // 注意空格
  }
})

// ❌ 错误
fetch('/api/users/profile', {
  headers: {
    'Authorization': token  // 缺少 Bearer
  }
})

⚠️ 安全警告: 不要用 SHA256 加密密码!(2025 最新)

常见错误(不要复制这段代码!):

# ❌ 不安全!2025 年已淘汰
import hashlib
password_hash = hashlib.sha256(password.encode()).hexdigest()

为什么不安全:

  • 相同密码哈希相同,黑客可以用“彩虹表“(预先计算的密码字典)破解
  • SHA256 运算太快,暴力破解很容易

正确做法(直接复制下面的代码模板):

# ✅ 使用 argon2id 或 bcrypt(2025 年最佳实践)
from passlib.context import CryptContext

# 创建密码加密器(复制这段,不需要理解原理)
pwd_context = CryptContext(schemes=["argon2"], deprecated="auto")

# 加密密码(每次结果都不同!这是正常的)
password_hash = pwd_context.hash("123456")

# 验证密码(登录时用)
is_correct = pwd_context.verify("123456", password_hash)  # 返回 True 或 False

小白专用说明:

  • 你不需要理解“加盐“、“哈希算法“这些概念
  • 直接复制上面的代码模板,或者让 AI 帮你生成
  • 记住:存密码时用 .hash(),验证密码时用 .verify()
  • 如果看到“每次加密结果不同“,不要慌,这是故意设计的安全特性

安装依赖:

pip install "passlib[argon2]"

参考资料: FastAPI Security Best Practices 2025


6. 如何高效地问 AI

✅ 好的提问模板

模板1: 报错问题

我在 [做什么事情] 时遇到报错。

【环境信息】
- 操作系统:Windows 11 / macOS 14 / Ubuntu 22.04
- Python 版本:3.11.5
- FastAPI 版本:0.109.0 (运行 pip show fastapi 查看)
- 虚拟环境:已激活 / 未激活

【完整报错信息】
[粘贴完整的报错堆栈,不要只截取一部分!]

【相关代码】
[粘贴出问题的代码片段]

【我已经尝试的方法】
- [x] 方法1(结果:失败,报错:xxx)
- [x] 方法2(结果:没有改善)
- [ ] 方法3(还没试)

请帮我排查问题。

模板2: 功能实现

我想实现 [具体功能描述]。

【技术栈】
- 后端:FastAPI + Supabase
- 前端:Next.js (可选)

【当前进度】
- [x] 已完成:数据库表创建
- [ ] 待实现:用户注册接口
- [ ] 待实现:JWT 认证

【我的想法】
[简述你的实现思路]

【遇到的困惑】
[哪里不确定怎么做]

请给我实现思路和参考代码。

模板3: 设计决策

我在设计 [某个功能] 时,有两个方案:

【方案A】
- 优点:xxx
- 缺点:xxx

【方案B】
- 优点:xxx
- 缺点:xxx

【我的疑问】
- 这两个方案哪个更好?
- 有没有其他更好的方案?
- 在 [具体场景] 下应该选哪个?

请帮我分析。

❌ 不好的提问(AI 无法回答)

反例1: 信息不全

❌ "我的代码报错了,怎么办?"
- 什么报错?
- 什么代码?
- 什么环境?

反例2: 只截取部分报错

❌ "报错:KeyError: 'user_id'"
- 完整的报错堆栈是什么?
- 哪个文件哪一行?

反例3: 太宽泛

❌ "怎么做后端?"
- 具体要实现什么功能?
- 用什么技术栈?

7. 调试技巧

🔍 如何看懂报错堆栈

示例报错:

Traceback (most recent call last):
  File "/Users/你的名字/my-backend/main.py", line 15, in register
    user_id = UserService.register(data.username, data.password)
  File "/Users/你的名字/my-backend/services/user_service.py", line 28, in register
    if dao.get_by_username(username):
  File "/Users/你的名字/my-backend/dao/user_dao.py", line 18, in get_by_username
    return response.data[0]['id']
IndexError: list index out of range

如何阅读(从下往上):

  1. 最底部 = 真正的错误

    IndexError: list index out of range
    

    意思:列表越界(试图访问不存在的索引)

  2. 倒数第二行 = 出错的代码

    File ".../dao/user_dao.py", line 18, in get_by_username
        return response.data[0]['id']
    

    意思:user_dao.py 第 18 行,response.data[0] 出错

  3. 往上追踪调用链

    main.py (line 15) 调用了
    user_service.py (line 28) 调用了
    user_dao.py (line 18) 出错了
    

问题定位:

  • response.data 是空列表
  • 访问 [0] 时越界
  • 原因:数据库里没有这个用户

修复方案:

# ❌ 错误写法
def get_by_username(username: str):
    response = supabase.table('users').select("*").eq('username', username).execute()
    return response.data[0]['id']  # 如果没找到,data 是空列表

# ✅ 正确写法
def get_by_username(username: str):
    response = supabase.table('users').select("*").eq('username', username).execute()
    if response.data:  # 先检查是否为空
        return response.data[0]
    return None

🔍 如何用 print() 调试

技巧1: 打印变量值

@app.post("/api/users/register")
def register(data: UserRegisterRequest):
    print(f"收到注册请求:{data}")  # 看看收到了什么数据

    existing_user = UserDAO.get_by_username(data.username)
    print(f"查询结果:{existing_user}")  # 看看查询到了什么

    if existing_user:
        print("用户已存在")
        return R.error("用户名已存在")

    print("开始创建用户")
    # ...

小白贴士:

  • print() 是最简单的调试方法,专业开发者也常用
  • 加上表情符号(📝/🔍/✅/❌)可以让日志更容易看懂
  • 看不懂代码逻辑没关系,AI 可以帮你加 print 语句

技巧2: 打印请求/响应

# 在 Supabase 操作前后打印
print("准备插入数据:", data)
response = supabase.table('users').insert(data).execute()
print("插入结果:", response)

8. 快速检查清单

遇到问题时,按这个顺序检查:

环境问题检查

  • 虚拟环境已激活(终端有 (venv) 标记)
  • VS Code 选择了正确的 Python 解释器(./venv/...
  • 依赖包已安装(pip list 能看到 fastapi)
  • Python 版本正确(python --version >= 3.10)

代码问题检查

  • 路由路径拼写正确(/api/users/register
  • HTTP 方法正确(GET/POST/PUT/DELETE)
  • 请求数据格式正确(JSON 格式,字段名对应)
  • 数据库连接信息正确(Supabase URL 和 Key)

网络问题检查

  • 后端服务已启动(uvicorn running on http://...
  • 端口没被占用(8000)
  • CORS 已配置(如果前端调用)
  • Supabase 项目可访问(在浏览器打开项目 URL)

Token 认证检查

  • Token 格式正确(Bearer <token>
  • Token 未过期(在 jwt.io 查看)
  • Authorization Header 拼写正确
  • Token 包含正确的用户信息

9. 常用调试命令

# 查看 Python 版本
python --version

# 查看 pip 版本
pip --version

# 查看当前使用的 Python 路径
which python  # Mac/Linux
where python  # Windows

# 查看已安装的包
pip list

# 查看某个包的详细信息
pip show fastapi

# 重新安装包(清除缓存)
pip install --force-reinstall fastapi

# 查看端口占用
lsof -i :8000  # Mac/Linux
netstat -ano | findstr :8000  # Windows

# 测试 API(命令行)
curl http://localhost:8000/

# 测试 API(带数据)
curl -X POST http://localhost:8000/api/users/register \
  -H "Content-Type: application/json" \
  -d '{"username":"test","password":"123456"}'

💡 Vibe Coding 调试心法

记住这三步:

  1. 看懂报错 - 不要慌,报错信息会告诉你问题在哪
  2. 问 AI - 用本文档的提问模板,提供完整信息
  3. 验证方案 - AI 给的方案不一定对,要测试验证

调试不是目的,解决问题才是目的。

  • 能跑通就是成功
  • 报错是正常的(专业开发者每天也会遇到几十个报错)
  • 搜索和问 AI 是正常工作流程(不是作弊)

📚 参考资料(2025最新)

官方文档:

安全最佳实践:

常见错误:


📝 本节小结

你应该掌握的能力:

  • ✅ 遇到报错不慌张,能看懂错误信息
  • ✅ 知道如何系统地排查问题(环境→代码→网络→数据库)
  • ✅ 会用标准模板问 AI,提供完整信息
  • ✅ 能自己调试简单问题(print 大法)

记住:

  • 报错是学习的机会
  • 每解决一个报错,你就变强一点
  • AI 是你的助手,但你要学会如何使用它

👉 下一步: 返回 后端开发基础 查看完整目录

如果遇到本文档没有列出的问题,用“如何问 AI“模板提问,90% 的问题都能解决!