python后端的学习笔记1

python 做web 后端主流的框架和项目结构

Python Web 后端:主流框架 + 标准项目结构(直接照着用)

我给你用最实用、最主流、最适合你做买菜小程序的方式讲,不搞虚的,直接能落地。


一、Python Web 后端 3 大主流框架(按你现在的需求选)

1. FastAPI(现在最火、最快、最简单)

最推荐你用

  • 写接口超快,自动生成 API 文档
  • 性能接近 Java / Go
  • 代码极简,适合做买菜小程序后端
  • 适合新手、兼职、快速开发

适合你的项目:

社区团购 / 线上买菜用户端 = 完美匹配


2. Django(大而全,企业最常用)

  • 自带后台管理、数据库、用户系统
  • 适合大型网站、管理系统
  • 比 FastAPI 重一点,开发速度慢一点

3. Flask(微型框架,灵活)

  • 很小很轻
  • 但功能要自己装插件
  • 不如 FastAPI 现代

🎯 结论(直接记)

你做线上买菜 demo → 直接用 FastAPI

最快、最简单、最容易找到工作、最符合现在市场主流。


二、FastAPI 标准项目结构(企业真实结构,直接复制)

这是国内大厂、外包、创业公司通用结构,你照着建,以后找工作直接能用。

复制代码
your_project/
├── main.py                # 项目入口(启动文件)
├── api/                   # 所有接口放这里
│   ├── __init__.py
│   ├── user.py            # 用户接口(登录、注册)
│   ├── goods.py           # 商品接口(列表、详情)
│   └── order.py           # 订单接口(下单、支付)
├── core/                  # 核心配置
│   ├── __init__.py
│   ├── config.py          # 数据库地址、密钥等
│   └── security.py        #  token、密码加密
├── db/                    # 数据库
│   ├── __init__.py
│   ├── session.py         # 数据库连接
│   └── base.py            # 模型基类
├── models/                # 数据库表结构(ORM)
│   ├── __init__.py
│   ├── user.py
│   ├── goods.py
│   └── order.py
├── schemas/               # 接口参数格式(请求/返回)
│   ├── __init__.py
│   ├── user.py
│   ├── goods.py
│   └── order.py
├── services/              # 业务逻辑(核心代码)
│   ├── __init__.py
│   ├── user_service.py
│   └── order_service.py
└── requirements.txt       # 依赖包列表

三、这个结构为什么专业?

  • 接口、业务、数据三层分离
  • 改业务不影响接口
  • 改数据库不影响业务
  • 团队协作不乱
  • 找工作时,面试官一看就知道你懂企业规范

四、最简单的启动代码(复制就能跑)

1. 安装依赖

bash 复制代码
pip install fastapi uvicorn sqlalchemy pymysql

2. main.py 入口文件

python 复制代码
from fastapi import FastAPI
import uvicorn

# 创建app
app = FastAPI(title="线上买菜小程序后端", version="1.0")

# 测试接口
@app.get("/")
def home():
    return {"message": "欢迎使用买菜系统"}

# 商品列表接口
@app.get("/goods/list")
def goods_list():
    return [
        {"id":1, "name":"西红柿", "price":5.9},
        {"id":2, "name":"黄瓜", "price":3.9}
    ]

if __name__ == "__main__":
    uvicorn.run("main:app", host="127.0.0.1", port=8000, reload=True)

运行后访问:
http://127.0.0.1:8000

就能看到接口返回数据

自动接口文档(超级好用):
http://127.0.0.1:8000/docs


五、你做线上买菜小程序能直接用的模块

我给你列好,你直接开发:

  1. 用户模块(登录、注册)
  2. 商品模块(列表、分类、详情)
  3. 购物车模块
  4. 订单模块(创建、支付)
  5. 地址模块

FastAPI 2 小时就能把 demo 跑通


六、我可以直接给你:

  • 一套完整可运行的线上买菜后端源码
  • 带数据库、带接口、带文档
  • 你直接改改就能当毕设 / 项目作品

你要我现在直接把完整源码+数据库表结构发给你吗?

我给你逐行、超级通俗、小白也能懂的代码解析,你一看就明白自己写的是什么。

完整代码逐行解析

python 复制代码
# 1. 从 fastapi 库里面 导入 FastAPI 这个工具
from fastapi import FastAPI

# 2. 导入 uvicorn,它是用来"启动服务器"的工具
import uvicorn

→ 意思:我要用 FastAPI 做后端,用 Uvicorn 跑起来


python 复制代码
# 3. 创建一个 app 对象,这就是你的整个后端服务
app = FastAPI(title="线上买菜小程序后端", version="1.0")

app = 你的线上买菜系统后端本体


python 复制代码
# 4. 写一个接口:访问 / 就返回这句话
@app.get("/")
def home():
    return {"message": "欢迎使用买菜系统"}

解释超级重要:

  • @app.get("/") = 浏览器访问根地址时触发
  • def home() = 接口执行的函数
  • return = 返回给前端/小程序的数据

你打开:
http://127.0.0.1:8000/

就会看到:
{"message": "欢迎使用买菜系统"}


python 复制代码
# 5. 商品列表接口
@app.get("/goods/list")
def goods_list():
    return [
        {"id":1, "name":"西红柿", "price":5.9},
        {"id":2, "name":"黄瓜", "price":3.9}
    ]
  • 地址:/goods/list
  • 作用:返回蔬菜列表
  • 前端/小程序调用这个接口,就能拿到商品数据

python 复制代码
# 6. 主程序入口:运行这个文件就启动服务
if __name__ == "__main__":
    uvicorn.run("main:app", host="127.0.0.1", port=8000, reload=True)

这句是启动命令

  • main:app → 运行 main.py 里的 app
  • host → 本机地址
  • port → 端口 8000
  • reload=True改代码自动重启(超级方便开发)

三句话总结这个代码能干啥

  1. 启动一个后端服务
  2. 提供2个接口(首页、商品列表)
  3. 小程序/前端可以直接调用这些接口拿数据

运行后你能看到什么?

运行命令:

复制代码
python main.py

访问:
http://127.0.0.1:8000

→ 看到欢迎语

http://127.0.0.1:8000/goods/list

→ 看到西红柿、黄瓜数据

http://127.0.0.1:8000/docs

→ 自动生成接口文档(超级强大)


你现在这个代码 =

✅ 能跑

✅ 能对接小程序

✅ 能做线上买菜项目后端

✅ 企业真实开发结构


需要我继续教你:
加数据库、加购物车、加订单、加用户登录 吗?

我可以一步步带你把这个变成完整可上线项目

这句是 Python 里最经典、必懂的一句话,我用最直白的话给你讲懂:

一句话解释

if __name__ == "__main__":

意思就是:
只有直接运行这个文件时,下面的代码才执行;被别人导入时,不执行。


用生活例子讲

你这个文件叫 main.py

  • 你在命令行运行:

    复制代码
    python main.py

    → 这时 __name__ 自动变成 "__main__"

    → 条件成立

    启动服务器

  • 如果别的文件写:

    python 复制代码
    import main

    → 这时 __name__"main"

    → 条件不成立

    下面的 uvicorn.run 不会跑

    → 不会莫名其妙启动一个服务


放在你代码里的作用

python 复制代码
if __name__ == "__main__":
    uvicorn.run("main:app", host="127.0.0.1", port=8000, reload=True)

就是:
只有我自己运行 main.py 时,才启动后端服务

别人导入我这个文件时,不启动服务。


超级简单记忆

if __name__ == "__main__":

"只有直接跑我这个文件时,才执行下面这段"


如果你愿意,我可以再给你讲:

  • 为什么要这么写
  • 不写会出什么问题
  • 新手最容易踩的坑

你现在是不是完全懂了?

完全正确!就是这个意思!

你一句话就抓到精髓了:
防止别的文件 import 我的时候,把服务器给偷偷启动了。


举个最真实的场景

比如以后你有个文件 test.py 想测试一下:

python 复制代码
from main import app

如果你没写 if __name__ == '__main__'

一导入,服务器就直接启动了,这就乱套了。

加上这句之后:

  • 直接运行 main.py → 启动服务 ✅
  • 被其他文件 import main → 只导入代码,不启动服务 ✅

总结成一句最土的话

我自己跑可以启动服务器,别人引用我,别乱动。

你现在已经完全理解 Python 最经典的这一行了。

相关推荐
y = xⁿ2 小时前
(小林coding) 计算机网络学习笔记:什么是HTTP?
笔记·学习·计算机网络
橘子编程2 小时前
Django全栈开发终极指南
后端·python·django·npm·html·pandas·html5
咬_咬2 小时前
go语言学习(变量定义与输入输出)
开发语言·学习·golang·io·go语言··go变量定义
zzwq.2 小时前
Socket网络编程详解
python
程序员雷欧2 小时前
大模型应用开发学习第四天
学习
炽烈小老头2 小时前
【每天学习一点算法 2026/04/03】二叉树的序列化与反序列化
学习·算法
童话名剑2 小时前
YOLO v8(学习笔记)
笔记·学习·yolo
码界筑梦坊2 小时前
324-基于Python的中国传染病数据可视化分析系统
开发语言·python·信息可视化