Python是当今流行的编程语言之一,Web开发领域自然无法缺少Python的身影。Python Web发展过程中诞生了数十种框架,其中Django框架因简洁、优秀且实用的结构和良好的开发效率,受到了广大Web开发工程师的喜爱。
本书在Windows上基于Python3.x与Django2.x对Django框架相关的知识进行讲解,并以此为基础利用Django框架实现了一个功能相对齐全的电商平台。本书分为14章,其中前8章介绍了Django的基础知识,包括路由系统、模型、模板、视图、后台管理系统、表单、身份验证系统;第9~14章从需求与前期准备着手,逐步实现了完整的Django Web项目。
本书附有配套视频、源代码、习题、教学课件等资源,为帮助初学者更好地学习本书中的内容,还提供了在线答疑,希望得到更多读者的关注。
本书既可作为高等院校本、专科计算机相关专业Django框架课程或Python进阶课程的专用教材,也可作为供自学者使用的辅助教材,是一本适合具有Python语言基础的读者使用的中级教材。
本书采用先理论后项目的方式部署教材章节顺序。在章节设置上,本书采用“理论知识+要点分析+代码示例+实例练习”的模式,既有普适性介绍,又抓取要点、突出重点,同时提供充足实例,保证读者在熟悉框架原理与基础的前提下,能够掌握相关知识,并运用到实际之中;在知识配置上,本书涵盖Django的路由系统、模型、模板、视图、后台管理系统、表单和身份验证系统,同时配置完整Web实战项目,通过学习本书,读者可全面掌握Django框架的设计模式与相关知识,具备使用Django框架快速开发Web项目的能力。
目录 第1章 Django概述 1.1 认识Django 1.1.1 Django发展史 1.1.2 Django框架的优点 1.2 安装Django 1.2.1 Django版本选择 1.2.2 创建隔离的Python环境 1.2.3 使用pip安装Django 1.3 创建第一个Django项目 1.3.1 新建Django项目 1.3.2 项目结构说明 1.3.3 运行开发服务器 1.3.4 Django项目配置 1.3.5 在项目中创建应用 1.4 Django架构之MTV 1.5 Django的开发理念 1.6 本章小结 1.7 习题 第2章 路由系统 2.1 认识路由系统 2.1.1 HTTP请求处理流程概述 2.1.2 URL配置示例 2.2 路由转换器 2.2.1 内置路由转换器 2.2.2 自定义路由转换器 2.3 使用正则表达式匹配URL 2.4 路由分发 2.5 向视图传递额外参数 2.6 URL命名与命名空间 2.6.1 URL命名 2.6.2 使用reverse()反向解析URL 2.6.3 应用命名空间 2.6.4 实例命名空间 2.7 本章小结 2.8 习题 第3章 模型 3.1 定义与使用模型 3.2 模型的字段 3.2.1 字段类型 3.2.2 关系字段 3.2.3 字段的通用参数 3.3 模型的元属性 3.4 Manager管理器 3.4.1 管理器名称 3.4.2 自定义管理器 3.5 数据的增删改查 3.6 QuerySet的使用 3.6.1 多表查询 3.6.2 F对象与Q对象 3.6.3 QuerySet的特性 3.7 执行原始SQL语句 3.8 本章小结 3.9 习题 第4章 模板 4.1 模板与模板引擎 4.2 模板查找顺序 4.3 模板语言 4.3.1 变量 4.3.2 过滤器 4.3.3 标签 4.3.4 自定义过滤器和标签 4.4 模板继承 4.5 jinja2 4.6 本章小结 4.7 习题 第5章 视图 5.1 认识视图 5.2 请求对象 5.3 响应对象 5.3.1 HttpResponse类 5.3.2 HttpResponse的子类 5.4 实例1:商品管理 5.5 模板响应对象 5.5.1 TemplateResponse 5.5.2 模板响应对象的渲染 5.6 生成响应的快捷方式 5.7 类视图 5.7.1 定义类视图 5.7.2 基础视图类 5.7.3 配置类属性 5.8 实例2:基于类视图的商品管理 5.9 通用视图 5.9.1 通用视图分类 5.9.2 通用视图与模型 5.9.3 添加额外的上下文对象 5.9.4 通过queryset控制页面内容 5.9.5 重要属性和方法 5.10 本章小结 5.11 习题 第6章 后台管理系统——Admin 6.1 认识Admin 6.1.1 进入Admin 6.1.2 使用Admin 6.2 ModelAdmin选项 6.2.1 列表页选项 6.2.2 编辑页选项 6.3 认证和授权 6.4 重写Admin后台模板 6.5 本章小结 6.6 习题 第7章 表单 7.1 Django表单概述 7.1.1 在Django中定义表单的方式 7.1.2 Form类的常用字段 7.1.3 字段的通用参数 7.1.4 实例化、处理和渲染表单 7.1.5 表单实例的形式 7.1.6 表单验证 7.2 在模板中渲染表单 7.3 表单集 7.3.1 创建表单集 7.3.2 管理表单集 7.3.3 验证表单集 7.3.4 使用表单集 7.4 根据模型创建表单 7.4.1 自定义模型表单类 7.4.2 模型表单类的字段 7.4.3 使用模型表单类 7.4.4 利用工厂函数定义模型表单类 7.4.5 利用工厂函数定义表单集 7.5 实例:基于表单类的商品管理 7.6 本章小结 7.7 习题 第8章 身份验证系统 8.1 User对象 8.2 权限与权限管理 8.2.1 默认权限 8.2.2 权限管理 8.2.3 自定义权限 8.3 Web请求认证 8.3.1 用户登录与退出 8.3.2 限制用户访问 8.4 模板与身份验证 8.4.1 验证用户 8.4.2 验证权限 8.5 自定义用户模型 8.6 状态保持 8.6.1 Cookie 8.6.2 Session 8.7 本章小结 8.8 习题 第9章 电商项目—前期准备 9.1 项目需求 9.2 模块归纳 9.3 项目开发模式与运行机制 9.4 项目创建和配置 9.4.1 创建项目 9.4.2 配置开发环境 9.4.3 配置Jinja2模板 9.4.4 配置MySQL数据库 9.4.5 配置Redis数据库 9.4.6 配置项目日志 9.4.7 配置前端静态文件 9.4.8 配置应用目录 9.5 本章小结 9.6 习题 第10章 电商项目——用户管理与验证 10.1 定义用户模型类 10.2 用户注册 10.2.1 用户注册逻辑分析 10.2.2 用户注册后端基础需求的实现 10.2.3 用户名与手机号唯一性校验 10.2.4 验证码 10.3 用户登录 10.3.1 使用用户名登录 10.3.2 使用手机号登录 10.3.3 状态保持 10.3.4 首页展示用户名 10.3.5 退出登录 10.4 用户中心 10.4.1 用户基本信息 10.4.2 添加邮箱 10.4.3 基于Celery的邮箱验证 10.4.4 省市区三级联动 10.4.5 新增与展示收货地址 10.4.6 设置默认地址与修改地址标题 10.4.7 修改与删除收货地址 10.4.8 修改登录密码 10.5 本章小结 10.6 习题 第11章 电商项目——商品数据的呈现 11.1 商品数据库表设计 11.2 准备商品数据 11.3 呈现首页数据 11.3.1 呈现首页商品分类 11.3.2 呈现首页商品广告 11.4 商品列表 11.4.1 商品列表页分析 11.4.2 获取商品分类 11.4.3 列表面包屑导航 11.4.4 呈现商品列表 11.4.5 列表页热销排行 11.5 商品搜索 11.5.1 准备搜索引擎 11.5.2 渲染商品搜索结果 11.5.3 搜索结果分页 11.6 商品详情 11.6.1 分析与准备商品详情页 11.6.2 呈现商品详情数据 11.7 用户浏览记录 11.7.1 浏览记录存储方案 11.7.2 保存和查询浏览记录 11.8 本章小结 11.9 习题 第12章 电商项目——购物车 12.1 购物车存储方案 12.1.1 登录用户购物车存储方案 12.1.2 未登录用户购物车存储方案 12.2 购物车管理 12.2.1 购物车添加商品 12.2.2 展示购物车商品 12.2.3 修改购物车商品 12.2.4 删除购物车商品 12.2.5 全选购物车 12.2.6 合并购物车 12.3 展示购物车缩略信息 12.4 本章小结 12.5 习题 第13章 电商项目-订单模块 13.1 结算订单 13.1.1 逻辑分析与接口定义 13.1.2 后端逻辑实现 13.1.3 前端页面渲染 13.2 提交订单 13.2.1 定义订单表模型 13.2.2 保存订单信息 13.2.3 呈现订单提交成功页面 13.3 基于事务的订单数据保存 13.3.1 Django中事务的使用 13.3.2 使用事务保存订单数据 13.4 基于乐观锁的并发下单 13.5 查看订单 13.6 本章小结 13.7 习题 第14章 电商项目——支付与评价 14.1 支付宝开放平台介绍 14.2 对接支付宝系统 14.2.1 支付信息配置 14.2.2 订单支付功能 14.2.3 保存订单支付结果 14.3 商品评价 14.3.1 评价订单商品 14.3.2 在详情页展示商品评价 14.4 本章小结 14.5 习题