实用技能型教材 > 程序设计类

Python Web 企业级项目开发教程(Django 版)

书号:9787113267261 套系名称:十三五”应用技术型人才培养规划教材

作者:黑马程序员  出版日期:2020-06-01

定价:56.00 页码 / 开本:336 /16

策划编辑:翟玉峰 责任编辑:翟玉峰 徐盼欣

适用专业:计算机教材 适用层次:本科,高职高专

最新印刷时间:2022-07-06

资源下载
教学课件 教学素材
习题答案 教学案例(暂无)
教学设计 教学视频(暂无)
内容简介 前言 目录 作者介绍 图书特色
  • Python 是当今最流行的编程语言之一,Web 开发领域自然无法缺少Python 的身影。 Python Web 发展过程中诞生了数十种框架,其中 Django 框架因简洁、优秀且实用的结构和良 好的开发效率,受到了广大 Web 开发工程师的喜爱。 
    本书在 Windows 上基于 Python 3.x 与 Django 2.x 对 Django 框架相关知识进行讲解,并以 此为基础利用Django 框架实现了一个完整的电商平台。本书分为14 章,其中前8 章介绍了 Django 的基础知识,包括 Django 概述、路由系统、模型、模板、视图、后台管理系统、表单、 身份验证系统 ;第 9~14 章从需求与前期准备着手,逐步实现了完整的 Django Web 项目。 
    本书附有配套视频、源代码、习题、教学课件等资源。为帮助初学者更好地学习本书中 的内容,还提供了在线答疑,希望得到更多读者的关注。 
    本书适合作为高等院校计算机相关专业 Django 框架课程或 Python 进阶课程的专用教材, 也可作为供自学者使用的辅助教材,适合具有 Python 语言基础的读者参考使用。
    
  • 21世纪是信息时代,各种各样的信息充斥着人们的生活,为了更好地呈现这些信 息,很多公司搭建了自己的内容网站。Python是当今最流行的编程语言之一,Web开发领 域自然无法缺少Python的身影。Python Web发展过程中诞生了许多框架,其中Django框架 因简洁、优秀且实用的结构和良好的开发效率,受到了广大Web开发工程师的喜爱。
    为什么要学习本书
    框架的学习并不难,带领读者领悟框架的设计思想,在其指引下掌握基于框架的项 目开发,是本书的初衷。本书可帮助具有Python基础的人快速了解、熟悉Django框架,熟 练基于Django开发Web程序。 
    在章节设置上,本书采用“理论知识+要点分析+代码示例+实例练习”的模式,既 有普适性介绍,又抓取要点、突出重点,同时提供充足实例,保证读者在熟悉框架原理 与基础的前提下,能够掌握相关知识,并运用到实际之中;在知识配置上,本书涵盖 Django的路由系统、模型、模板、视图、后台管理系统、表单和身份验证系统,同时配 置完整Web实战项目。通过学习本书,读者可全面掌握Django框架的设计模式与相关知 识,具备使用Django框架快速开发Web项目的能力。
    如何使用本书 
    本书在Windows上基于Python 3.x与Django 2.x对Django框架相关知识进行讲解。全书 分为14个章节,各章内容分别如下: 
    第1章简单介绍了Django框架,包括Django的发展史、优点、安装,创建Django项目 与应用、Django的目录结构、配置文件,Django架构,以及Django的开发理念。通过本章 的学习,读者能够对Django框架有所了解,掌握如何搭建虚拟环境,熟悉Django目录结 构,可熟练创建Django项目与应用。 
    第2章主要介绍了Django框架中的路由系统,包括处理HTTP的请求、路由转换器、 利用正则表达式配置URL、通过include()函数实现路由分发、向视图传递额外参数、URL 命名与命名空间,以及反向解析URL。通过本章的学习,读者能够熟练使用Django框架 中的路由系统。 
    第3章介绍了与Django模型相关的知识,包括模型的定义、字段的使用、模型的元 属性、Manager管理器、数据的增删改查,以及QuerySet的使用。通过本章的学习,读者能够对Django中的模型有所了解,掌握如何定义模型,熟练利用模型操作数据库中的 数据。 
    第4章介绍了与Django模板相关的知识,包括Django内置模板引擎与第三方模板引擎 Jinja2、Django模板的查找顺序、模板语言,以及模板的继承机制。通过本章的学习,读 者能够熟悉Django模板语法,掌握如何配置模板引擎,了解模板的查找顺序,可熟练使 用模板。 
    第5章介绍了与Django中的视图相关的知识,包括函数视图、请求对象和响应对象、 模板响应对象、生成响应的快捷方式、类视图,以及基于类的通用视图。通过本章的学 习,读者能够熟悉Django中视图的功能、结构,掌握请求对象和响应对象,熟练定义和 使用视图。 
    第6章介绍了与Admin后台管理系统相关的知识,包括进入后台、使用后台管理系 统,通过ModelAdmin选项控制页面显示内容、认证和授权,以及重写Django后台模板。 通过本章的学习,读者能够掌握并熟练运行Admin。 
    第7章介绍了在后端定义表单、利用Django模型类定义表单,以及表单集。通过本章 的学习,读者能够了解如何通过代码定义表单类、如何在视图中实例化表单类,以及在 模板中使用表单实例。 
    第8章介绍了身份验证系统的相关知识,包括User对象、权限管理、Web请求认证、 模板与身份验证、自定义用户模型、状态保持。通过本章的学习,读者能够掌握Django 身份验证系统的基本使用,为后续项目开发作铺垫。 
    第9章通过示例网站分析了电商平台小鱼商城的需求,归纳了其核心模块,介绍了其 开发模式和运行机制,并准备了开发项目所需的环境。通过本章的学习,读者能够明确 小鱼商城项目的需求和模块,了解项目架构,能够熟练准备项目环境。 
    第10章主要实现了小鱼商城用户注册、用户登录与用户中心功能。通过本章的学 习,读者能够掌握用户相关模块的功能划分与内部逻辑,熟练实现相关功能。 
    第11章主要实现了小鱼商城的商品模块和广告模块,包括商品、广告的数据库设 计、数据的准备、首页数据的呈现、商品列表、商品搜索、商品详情,并实现了用户的 浏览记录。通过本章的学习,读者能够深入理解Django架构,熟悉Django的使用,掌握 pagination分页工具,熟练使用whoosh引擎。 
    第12章首先介绍了购物车的两种存储方案,然后分别介绍了购物车常用的功能, 包括添加商品、展示购物车、修改购物车商品、删除商品、全选与合并购物车功能,以 及展示购物车的缩略信息。通过本章的学习,读者能够理解购物车中常用功能的实现 逻辑。 
    第13章实现了小鱼商城订单的结算和提交,并介绍了与订单数据修改相关的事务处 理。通过本章的学习,读者能够熟悉电商网站订单模块的功能与逻辑,掌握Django事务 处理方式与乐观锁的使用。 
    第14章首先对支付宝平台进行了简单介绍,然后讲解了如何在项目中对接支付宝,最后介绍了商品评价的实现以及评价的展示。通过本章的学习,读者能够掌握如何对接 支付宝,了解商品评价的业务逻辑。 
    读者若不能完全理解本书中所讲知识,可登录在线平台,配合平台中的教学视频进 行学习。此外,读者在学习的过程中,务必要勤于练习,确保真正掌握所学知识。若在 学习的过程中遇到无法解决的困难,建议读者莫要纠结于此,继续往后学习,或可豁然 开朗。
    致谢
    本书的编写和整理工作由传智播客教育科技股份有限公司完成,主要参与人员有高 美云、孙东、郑瑶瑶等,全体人员在这近一年的编写过程中付出了很多辛勤的汗水,在 此一并表示衷心的感谢。
    意见反馈
    尽管我们付出了最大的努力,但书中难免会有疏漏和不妥之处,欢迎各界专家和读 者朋友来信提出宝贵意见,我们将不胜感激。您在阅读本书时,如发现任何问题或有不 认同之处,可以通过电子邮件与我们取得联系。 
    请发送电子邮件至:itcast_book@vip.sina.com。
     
                                  黑马程序员         
    2020年3月2日于北京
    
  • 第 1 章 Django概述 .............................1 
    1.1 认识Django .....................................1 
    1.1.1 Django发展史..........................1 
    1.1.2 Django框架的优点..................2 
    1.2 安装Django .....................................2 
    1.2.1 Django版本选择......................2 
    1.2.2 创建隔离的Python环境 ..........3 
    1.2.3 使用pip安装Django ................4 
    1.3 创建第一个Django项目 .................5 
    1.3.1 新建Django项目......................5 
    1.3.2 项目结构说明 .........................5 
    1.3.3 运行开发服务器 .....................6 
    1.3.4 Django项目配置......................7 
    1.3.5 在项目中创建应用 .................9 
    1.4 Django架构之MTV ......................11 
    1.5 Django的开发理念 .......................11 
    小结 .......................................................13 
    习题 .......................................................13
    第 2 章 路由系统 ...............................15 
    2.1 认识路由系统 ..............................15 
    2.1.1 HTTP请求处理流程概述 .....15 
    2.1.2 URL配置示例 .......................16 
    2.2 路由转换器 ..................................17 
    2.2.1 内置路由转换器 ...................17
    2.2.2 自定义路由转换器 ...............18 
    2.3 使用正则表达式匹配URL ...........19 
    2.4 路由分发 ......................................20 
    2.5 向视图传递额外参数 ..................21 
    2.6 URL命名与命名空间 ..................22 
    2.6.1 URL命名 ...............................22 
    2.6.2 使用reverse()反向解析URL .......................................22 
    2.6.3 应用命名空间 .......................23 
    2.6.4 实例命名空间 .......................24 
    小结 .......................................................25 
    习题 .......................................................25
    第 3 章 模型 .......................................27 
    3.1 定义与使用模型 ..........................27 
    3.2 模型的字段 ..................................29 
    3.2.1 字段类型 ...............................29 
    3.2.2 关系字段 ...............................30 
    3.2.3 字段的通用参数 ...................32 
    3.3 模型的元属性 ..............................32
    3.4 Manager管理器 ............................33 
    3.4.1 管理器名称 ...........................33 
    3.4.2 自定义管理器 .......................33 
    3.5 数据的增删改查 ..........................34 
    3.6 QuerySet的使用 ...........................36 
    3.6.1 多表查询 ...............................36 
    3.6.2 F对象与Q对象 ......................38 
    3.6.3 QuerySet的特性 ....................38 
    3.7 执行原始SQL语句 .......................39 
    小结 .......................................................40 
    习题 .......................................................40
    第 4 章 模板 .......................................42 
    4.1 模板与模板引擎 ..........................42 
    4.2 模板查找顺序 ..............................43 
    4.3 模板语言 ......................................44 
    4.3.1 变量 .......................................45 
    4.3.2 过滤器 ...................................45 
    4.3.3 标签 .......................................48 
    4.3.4 自定义过滤器和标签 ...........52 
    4.4 模板继承 ......................................55 
    4.5 Jinja2 .............................................57 
    小结 .......................................................58 
    习题 .......................................................58
    第 5 章 视图 .......................................61 
    5.1 认识视图 ......................................61 
    5.2 请求对象 ......................................62 
    5.3 响应对象 ......................................64 
    5.3.1 HttpResponse类 .....................65 
    5.3.2 HttpResponse的子类 .............66 
    5.4 实例1:商品管理 ........................67 
    5.5 模板响应对象 ..............................70 
    5.5.1 TemplateResponse .................70 
    5.5.2 模板响应对象的渲染 ...........71 
    5.6 生成响应的快捷方式 ..................73 
    5.7 类视图 ..........................................75 
    5.7.1 定义类视图 ...........................75 
    5.7.2 基础视图类 ...........................75 
    5.7.3 配置类属性 ...........................77 
    5.8 实例2:基于类视图的商品管理 ..............................................78 
    5.9 通用视图 ......................................82
    5.9.1 通用视图分类 .......................82 
    5.9.2 通用视图与模型 ...................82 
    5.9.3 添加额外的上下文对象 .......84 
    5.9.4 通过queryset控制页面内容 .......................................84 
    5.9.5 重要属性和方法 ...................85 
    小结 .......................................................85 
    习题 .......................................................85
    第 6 章 后台管理系统——Admin .......87 
    6.1 认识Admin ...................................87 
    6.1.1 进入Admin ............................87 
    6.1.2 使用Admin  ...........................89 
    6.2 ModelAdmin选项 .........................93 
    6.2.1 列表页选项 ...........................93 
    6.2.2 编辑页选项 ...........................99 
    6.3 认证和授权 ................................101 
    6.4 重写Admin后台模板 .................106 
    小结 .....................................................107 
    ..................................................107
    第 7 章 表单 .....................................109 
    7.1 Django表单概述 .........................109 
    7.1.1 在Django中定义表单的方式 .....................................109 
    7.1.2 Form类的常用字段 .............110 
    7.1.3 字段的通用参数 .................111 
    7.1.4 实例化、处理和渲染表单 .....................................112 
    7.1.5 表单实例的形式 .................113 
    7.1.6 表单验证 .............................113 
    7.2 在模板中渲染表单 ....................114
    7.3 表单集 ........................................116 
    7.3.1 创建表单集 .........................116 
    7.3.2 管理表单集 .........................117 
    7.3.3 验证表单集 .........................118 
    7.3.4 使用表单集 .........................118 
    7.4 根据模型创建表单 ....................119 
    7.4.1 自定义模型表单类 .............119 
    7.4.2 模型表单类的字段 .............120 
    7.4.3 使用模型表单类 .................121 
    7.4.4 利用工厂函数定义模型表单类 .................................123 
    7.4.5 利用工厂函数定义表单集 .................................123 
    7.5 实例:基于表单类的商品管理 ............................................124 
    小结 .....................................................127 
    习题 .....................................................127
    第 8 章 身份验证系统 ......................129 
    8.1 User对象 .....................................129 
    8.2 权限与权限管理 ........................131 
    8.2.1 默认权限 .............................131 
    8.2.2 权限管理 .............................132 
    8.2.3 自定义权限 .........................133 
    8.3 Web请求认证 .............................134 
    8.3.1 用户登录与退出 .................134 
    8.3.2 限制用户访问 .....................135 
    8.4 模板与身份验证 ........................136 
    8.4.1 验证用户 .............................136 
    8.4.2 验证权限 .............................137 
    8.5 自定义用户模型 ........................138 
    8.6 状态保持 ....................................138
    8.6.1 Cookie ..................................139 
    8.6.2 Session .................................141 
    小结 .....................................................144 
    ..................................................145
    第 9 章 电商项目——前期准备 ........146 
    9.1 项目需求 ....................................146 
    9.2 模块归纳 ....................................156 
    9.3 项目开发模式与运行机制 ........157 
    9.4 项目创建和配置 ........................158 
    9.4.1 创建项目 .............................158 
    9.4.2 配置开发环境 .....................158 
    9.4.3 配置Jinja2模板 ....................159 
    9.4.4 配置MySQL数据库 ............161 
    9.4.5 配置Redis数据库 ................162 
    9.4.6 配置项目日志 .....................162 
    9.4.7 配置前端静态文件 .............164 
    9.4.8 配置应用目录 .....................164 
    小结 .....................................................166 
    习题 .....................................................166
    第 10 章 电商项目——用户管理与验证 ..............................167 
    10.1 定义用户模型类 ......................167 
    10.2 用户注册 ..................................168 
    10.2.1 用户注册逻辑分析 ...........168 
    10.2.2 用户注册后端基础需求的实现 .......................170 
    10.2.3 用户名与手机号唯一性校验 ...................................173 
    10.2.4 验证码 ...............................176 
    10.3 用户登录 ..................................190
    10.3.1 使用用户名登录 ...............190 
    10.3.2 使用手机号登录 ...............192 10.3.3 状态保持 ...........................193 
    10.3.4 首页展示用户名 ...............194 
    10.3.5 退出登录 ...........................195 
    10.4 用户中心 ..................................195 
    10.4.1 用户基本信息 ...................196 
    10.4.2 添加邮箱 ...........................198 
    10.4.3 基于Celery的邮箱验证 .....200 
    10.4.4 省市区三级联动 ...............207 
    10.4.5 新增与展示收货地址 .......211 
    10.4.6 设置默认地址与修改地址标题 ...........................216 
    10.4.7 修改与删除收货地址 .......218 
    10.4.8 修改登录密码 ...................221 
    小结 .....................................................223 
    习题 .....................................................223
    第 11 章 电商项目——商品数据的呈现 ...................................224 
    11.1 商品数据库表设计 ...................224 
    11.2 准备商品数据 ...........................227 
    11.3 呈现首页数据 ...........................231 
    11.3.1 呈现首页商品分类 ...........231 
    11.3.2 呈现首页商品广告 ...........235 
    11.4 商品列表 ...................................237 
    11.4.1 商品列表页分析 ...............238 
    11.4.2 获取商品分类 ...................239 
    11.4.3 列表面包屑导航 ...............242 
    11.4.4 呈现商品列表 ...................244 
    11.4.5 列表页热销排行 ...............248 
    11.5 商品搜索 ...................................250
    11.5.1 准备搜索引擎 ...................250 
    11.5.2 渲染商品搜索结果 ...........253 
    11.5.3 搜索结果分页 ...................254 
    11.6 商品详情 ...................................255 
    11.6.1 分析与准备商品详情页 ...255 
    11.6.2 呈现商品详情数据 ...........256 
    11.7 用户浏览记录 ...........................260 
    11.7.1 浏览记录存储方案 ...........260 
    11.7.2 保存和查询浏览记录 .......261 
    小结 .....................................................264 
    习题 .....................................................264
    第 12 章 电商项目——购物车 ..........265 
    12.1 购物车存储方案 ......................265 
    12.1.1 登录用户购物车存储方案 ...................................265 
    12.1.2 未登录用户购物车存储方案 ...................................267 
    12.2 购物车管理 ..............................269 
    12.2.1 购物车添加商品 ...............269 
    12.2.2 展示购物车商品 ...............272 
    12.2.3 修改购物车商品 ...............274 
    12.2.4 删除购物车商品 ...............277 
    12.2.5 全选购物车 .......................279 
    12.2.6 合并购物车 .......................281 
    12.3 展示购物车缩略信息 ..............282 
    小结 .....................................................285 
    习题 .....................................................285
    第 13 章 电商项目——订单模块 ......286 
    13.1 结算订单 ..................................286 
    13.1.1 逻辑分析与接口定义 .......286 
    13.1.2 后端逻辑实现 ...................287 
    13.1.3 前端页面渲染 ...................290 
    13.2 提交订单 ..................................292 
    13.2.1 定义订单表模型 ...............292 
    13.2.2 保存订单信息 ...................294 
    13.2.3 呈现订单提交成功页面 ...296 
    13.3 基于事务的订单数据保存 ......298 
    13.3.1 Django中事务的使用........298 
    13.3.2 使用事务保存订单数据 ...299 
    13.4 基于乐观锁的并发下单 ..........301 
    13.5 查看订单 ..................................303 
    小结 .....................................................306 
    习题 .....................................................306
    第 14 章 电商项目——支付与评价 ...307 
    14.1 支付宝开放平台介绍 ..............307 
    14.2 对接支付宝系统 ......................310 
    14.2.1 支付信息配置 ...................310 
    14.2.2 订单支付功能 ...................312 
    14.2.3 保存订单支付结果 ...........315 
    14.3 商品评价 ..................................316 
    14.3.1 评价订单商品 ...................317 
    14.3.2 在详情页展示商品评价 ....319 
    小结 .....................................................322 
    习题 .....................................................322
    
    
  • 江苏传智播客教育科技股份有限公司
  • 本书在Windows上基于Python 3.x与Django 2.x对Django框架相关知识进行讲解,并以此为基础利用Django框架实现了一个完整的电商平台。