✅ 课程衔接:已掌握「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 数据,支持前后端联调。
✅ 三、课后作业
📌 基础作业(必做,巩固后端进阶)
- 基于上述代码,新增「修改用户昵称」接口(PUT 请求),实现用户信息更新;
- 搭建 Django 项目,完成「商品列表查询」接口开发,返回模拟商品数据;
- 整理 Flask 与 Django 的核心差异,手写 3 条选型结论。
📌 进阶作业(选做,对接前端)
用基础课学的 HTML+JS,编写一个简单的「用户登录页面」,通过 AJAX 请求上述 Flask 登录接口,实现前端页面与后端接口的联动。
✅ 明日预告
第 2 课:全栈核心基石 ------MySQL 数据库 + ORM 映射,实现后端数据持久化(告别模拟数据,落地真实存储)。