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 映射,实现后端数据持久化(告别模拟数据,落地真实存储)。

相关推荐
qq_348231852 小时前
市场快评 · 今日复盘20251231
大数据
程序员JerrySUN2 小时前
OP-TEE + YOLOv8:从“加密权重”到“内存中解密并推理”的完整实战记录
android·java·开发语言·redis·yolo·架构
阿里嘎多学长2 小时前
2025-12-30 GitHub 热点项目精选
开发语言·程序员·github·代码托管
nvd112 小时前
故障排查:Pytest Asyncio Event Loop Closed 错误
python
郝学胜-神的一滴2 小时前
Linux进程与线程控制原语对比:双刃出鞘,各显锋芒
linux·服务器·开发语言·数据结构·c++·程序人生
deephub2 小时前
Lux 上手指南:让 AI 直接操作你的电脑
人工智能·python·大语言模型·agent
Channing Lewis2 小时前
Python读取excel转成html,并且复制excel中单元格的颜色(字体或填充)
python·html·excel
小钟不想敲代码3 小时前
Python(一)
开发语言·python
山上三树3 小时前
task_struct 详解
运维·服务器·网络