Python + 前后端全栈进阶课程(共 10 节|完整版递进式|从技术深化→项目落地→就业进阶,无缝衔接基础课)

✅ 课程衔接:已掌握「Python 基础语法 + 前端 HTML/CSS/JS 基础 + 后端 Flask/Django 入门」,本课程聚焦 「技术进阶 + 前后端联动 + 工程化落地 + 综合项目闭环」

✅ 核心特点:后端深化 + 数据库落地 + 前后端联调 + 实战项目主导,每节课攻克 1 个核心技术模块,最终完成企业级全栈项目开发;

✅ 学习目标:从「会写基础代码」升级为「能做完整项目」,掌握 Python 全栈开发核心能力,具备项目落地与工程化开发思维。

📌 第 1 课:Python 后端进阶 ------Flask 深度优化 + Django 核心入门(后端能力升级)

✅ 今日学习目标

✅ 吃透 Flask 后端进阶核心:路由高级用法、请求 / 响应封装、会话管理(Cookie/Session)、异常统一处理;

✅ 快速入门 Django 核心:项目工程结构、APP 分包思想、内置路由与视图,对比 Flask 与 Django 适用场景;

✅ 掌握后端「接口规范」,能编写符合 RESTful 标准的接口,为前后端联调打下基础;

✅ 实现「用户登录 / 注册」后端核心接口,具备后端业务逻辑开发能力。

✅ 一、核心知识点精讲(衔接基础,深化后端核心)

模块 1:Flask 后端进阶(基础巩固 + 能力升级,贴合已学内容)

承接基础课的 Flask 入门,聚焦「企业级开发必备的高级特性」,解决基础开发中的痛点问题

✅ 1. 路由高级用法(动态路由 + 请求方法限制 + 蓝图分包)

python

运行

复制代码
# 1. 动态路由(传参,适配用户ID/商品ID等场景)
@app.route("/user/<int:user_id>", methods=["GET"])
def get_user_info(user_id):
    # 根据用户ID返回数据,适配个性化查询
    return {"code":200, "msg":"success", "data":{"user_id":user_id, "name":"小明"}}

# 2. 请求方法限制(严格区分GET/POST/PUT/DELETE,符合RESTful规范)
@app.route("/login", methods=["POST"])  # 仅允许POST请求(提交数据用)
def login():
    username = request.json.get("username")
    password = request.json.get("password")
    if username == "admin" and password == "123456":
        return {"code":200, "msg":"登录成功"}
    return {"code":400, "msg":"账号密码错误"}

# 3. 蓝图Blueprint(分包核心,解决单文件代码臃肿,企业级必用)
# 步骤1:新建user_blueprint.py文件,创建蓝图
from flask import Blueprint
user_bp = Blueprint("user", __name__, url_prefix="/user")
@user_bp.route("/info", methods=["GET"])
def user_info():
    return {"code":200, "data":"用户信息"}

# 步骤2:主程序注册蓝图
app.register_blueprint(user_bp)
✅ 2. 会话管理(Cookie/Session)------ 实现用户状态保持

python

运行

复制代码
from flask import Flask, session, make_response
app.secret_key = "your_secret_key"  # 必须配置,用于加密Session

# 设置Session(登录后保存用户状态)
@app.route("/login", methods=["POST"])
def login():
    session["username"] = "admin"  # 保存用户信息到Session
    return {"code":200, "msg":"登录成功"}

# 获取Session(验证用户是否登录)
@app.route("/check_login", methods=["GET"])
def check_login():
    if session.get("username"):
        return {"code":200, "msg":"已登录"}
    return {"code":401, "msg":"未登录"}

# 设置Cookie(持久化存储,比如记住密码)
@app.route("/set_cookie")
def set_cookie():
    res = make_response({"code":200})
    res.set_cookie("token", "abc123", max_age=3600)  # 有效期1小时
    return res
模块 2:Django 核心入门(后端框架二选一,掌握企业级主流方案)

对比 Flask「轻量灵活」,Django 是「大而全」的企业级框架,内置用户认证、ORM、后台管理,适合大型项目开发

✅ 1. Django 核心工程结构(必懂,区分 Flask)

plaintext

复制代码
# 新建Django项目后的标准结构(自动生成)
project_name/
├── project_name/  # 项目配置目录
│   ├── settings.py # 全局配置(数据库、跨域、APP注册)
│   ├── urls.py     # 全局路由入口
│   └── wsgi.py     # 部署入口
├── app_name/      # 业务模块(用户、商品等,可新建多个)
│   ├── models.py   # 数据模型(对应数据库表)
│   ├── views.py    # 视图函数(接口逻辑)
│   └── urls.py     # 模块路由
└── manage.py       # 项目管理工具(运行、迁移数据库)
✅ 2. Django 快速实现接口(入门核心,贴合已学后端思维)

python

运行

复制代码
# 1. app/views.py 编写视图函数
from django.http import JsonResponse
def index(request):
    if request.method == "GET":
        return JsonResponse({"code":200, "msg":"Django接口入门成功"})

# 2. app/urls.py 配置模块路由
from django.urls import path
from . import views
urlpatterns = [
    path("index/", views.index),
]

# 3. project_name/urls.py 注册全局路由
from django.urls import path, include
urlpatterns = [
    path("api/", include("app_name.urls")),  # 所有/api开头的请求,转发到app路由
]
✅ 3. Flask vs Django 选型对比(实战必备)

Flask:轻量无侵入,适合小型项目、接口开发、快速原型搭建,灵活性高;

Django:内置全套功能,适合大型项目、企业级后台、电商 / 管理系统,开发效率高;

✅ 核心原则:小项目用 Flask,大项目用 Django,两者核心思想互通,掌握其一即可快速切换。

✅ 二、今日核心实战(必做,后端进阶核心)

✅ 实战需求:基于 Flask 实现「用户模块后端接口」(企业级基础)

实现 4 个核心接口:用户注册(POST)、用户登录(POST)、查询用户信息(GET)、退出登录(GET),包含参数校验、Session 状态保持、异常处理,符合 RESTful 接口规范。

✅ 完整可运行代码

python

运行

复制代码
from flask import Flask, request, jsonify, session
app = Flask(__name__)
app.secret_key = "python_full_stack_2025"  # 加密密钥

# 模拟数据库存储用户数据
user_db = [{"username": "admin", "password": "123456", "nickname": "管理员"}]

# 1. 用户注册接口
@app.route("/api/register", methods=["POST"])
def register():
    data = request.json
    username = data.get("username")
    password = data.get("password")
    # 参数校验
    if not username or not password:
        return jsonify({"code":400, "msg":"用户名/密码不能为空"})
    # 检查用户是否已存在
    for user in user_db:
        if user["username"] == username:
            return jsonify({"code":400, "msg":"用户已存在"})
    user_db.append({"username": username, "password": password, "nickname": username})
    return jsonify({"code":200, "msg":"注册成功"})

# 2. 用户登录接口(Session保存状态)
@app.route("/api/login", methods=["POST"])
def login():
    data = request.json
    username = data.get("username")
    password = data.get("password")
    for user in user_db:
        if user["username"] == username and user["password"] == password:
            session["username"] = username  # 保存登录状态
            return jsonify({"code":200, "msg":"登录成功", "data":user})
    return jsonify({"code":400, "msg":"账号密码错误"})

# 3. 查询用户信息(验证登录状态)
@app.route("/api/user/info", methods=["GET"])
def user_info():
    if not session.get("username"):
        return jsonify({"code":401, "msg":"请先登录"})
    for user in user_db:
        if user["username"] == session["username"]:
            return jsonify({"code":200, "msg":"success", "data":user})

# 4. 退出登录(清除Session)
@app.route("/api/logout", methods=["GET"])
def logout():
    session.clear()
    return jsonify({"code":200, "msg":"退出成功"})

if __name__ == "__main__":
    app.run(debug=True, port=5000)
✅ 测试效果

启动项目后,用浏览器 / Postman 请求接口,实现「注册→登录→查信息→退出」完整流程,接口返回标准 JSON 数据,支持前后端联调。

✅ 三、课后作业

📌 基础作业(必做,巩固后端进阶)
  1. 基于上述代码,新增「修改用户昵称」接口(PUT 请求),实现用户信息更新;
  2. 搭建 Django 项目,完成「商品列表查询」接口开发,返回模拟商品数据;
  3. 整理 Flask 与 Django 的核心差异,手写 3 条选型结论。
📌 进阶作业(选做,对接前端)

用基础课学的 HTML+JS,编写一个简单的「用户登录页面」,通过 AJAX 请求上述 Flask 登录接口,实现前端页面与后端接口的联动。

✅ 明日预告

第 2 课:全栈核心基石 ------MySQL 数据库 + ORM 映射,实现后端数据持久化(告别模拟数据,落地真实存储)。

相关推荐
孟健1 小时前
Karpathy 用 200 行纯 Python 从零实现 GPT:代码逐行解析
python
码路飞3 小时前
写了个 AI 聊天页面,被 5 种流式格式折腾了一整天 😭
javascript·python
曲幽6 小时前
FastAPI压力测试实战:Locust模拟真实用户并发及优化建议
python·fastapi·web·locust·asyncio·test·uvicorn·workers
武子康9 小时前
大数据-237 离线数仓 - Hive 广告业务实战:ODS→DWD 事件解析、广告明细与转化分析落地
大数据·后端·apache hive
敏编程10 小时前
一天一个Python库:jsonschema - JSON 数据验证利器
python
前端付豪10 小时前
LangChain记忆:通过Memory记住上次的对话细节
人工智能·python·langchain
databook11 小时前
ManimCE v0.20.1 发布:LaTeX 渲染修复与动画稳定性提升
python·动效
大大大大晴天11 小时前
Flink生产问题排障-Kryo serializer scala extensions are not available
大数据·flink
花酒锄作田1 天前
使用 pkgutil 实现动态插件系统
python
前端付豪1 天前
LangChain链 写一篇完美推文?用SequencialChain链接不同的组件
人工智能·python·langchain