×
Django + Vue.js实战派――Python Web开发与运维

Django + Vue.js实战派――Python Web开发与运维

1星价 ¥87.0 (6.8折)
2星价¥87.0 定价¥128.0
买过本商品的人还买了
暂无评论
图文详情
  • ISBN:9787121430848
  • 装帧:一般胶版纸
  • 册数:暂无
  • 重量:暂无
  • 开本:其他
  • 页数:488
  • 出版时间:2022-03-01
  • 条形码:9787121430848 ; 978-7-121-43084-8

本书特色

介绍了利用“Django+Vue.js”来完成一个实用的Web商城应用。 实战强:大量案例,读者可以动起来轻松学:多用图解、比喻、类比来讲解主线清:后端+前端+部署运维,全栈版本新:相关软件采用目前的新版本本书通过Django框架,以业界主流的前后端分离开发方式,讲解了商城系统从需求分析、架构设计、编码到测试、部署的全流程。难得可贵的是,本书在部署环节提倡“开发运维一体化”,践行了DevOps的理念,让开发和运维有机地结合成为一个整体。这样可以有效提升应用服务研发和运维的效率。作者基于其多年的实践经验,将开发经验和上云经验较好地融入本书,推荐读者阅读! 陈靖翔中国电信集团有限公司云网运营部(大数据和AI中心)平台云化推进处处长 国内Django开发的书不少,但是像本书这样能够将自己的经验和目前的云原生概念融合的书并不多。本书以开发一个商城系统为脉络,从Django的基础开始,采用前后端分离的方式,*终结合部署运维的实例,完整地展示了一个企业级系统的开发过程。 本书既有理论,又有实践,还包含了作者对于开发和上云的理解和观点,适合准备在数字化浪潮中冲浪的读者学习和借鉴。 张震中国电信集团云网运营部智能云网业务运营中心政企业务支撑室主任 本书由浅入深,通过一个完整的商城实例,介绍了如何利用“重量级的Python Web开发框架Django+目前流行的前端框架Vue.js”来完成一个实用的Web商城应用。 当然,如果只了解怎么使用“Django + Vue.js”搭建网站肯定是远远不够的,一个完整成熟的商业Web应用,还需要考虑数据存储、缓存、部署、负载均衡、容器化、持续集成、监控等。这些内容在本书中都有详细的介绍。因此,本书是学习Python Web开发、成为一个专业的Web开发高手的很好参考书籍。 陈锐博赛软件有限公司CTO微软2002-2012年MVP不论对企业还是个人而言,如何拥抱变化与应对变化,都是一个重要课题。因此,近年来,能够快速响应需求的T型人才、全栈人才正逐渐成为各行业人力资源部门重点关注的对象。在互联网领域,更是如此。 懂前端和后端、会交互和运维的Web全栈工程师,俨然已成为人力市场上的“香饽饽”。本书以Python的Web服务端快速开发框架Django,以及渐进式JavaScript框架Vue.js为工具,引领读者踏上全栈工程师之路。本书不仅适合已有一定基础的Web开发者阅读,对于有意探索“新工科”人才培养的高等院校,以及院校中有志于成为Web全栈工程师的师生也同样适用。 陈缘浙江工商大学智慧教育研究院副院长浙江工商大学国家级文科综合实验教学示范中心主管微软MVPUnity价值专家 如果读者想使用Python快速、高效地搭建Web站点,那Django无疑是一个不错的选择。本书作者在这个领域深耕多年,书中结合项目实战给读者提供了非常实用的项目案例参考。 本书中不但涵盖了对于初学者来说*常用的知识点,并利用易于理解的方式进行介绍,还提供了对Django项目中关键点不同角度的清晰解释,让读者仿佛亲历整个项目的过程。 “Django后端开发 + Vue.js前端开发 + 测试 + 持续集成 + 持续部署”涉及的内容比较多,如何找到一条简捷的学习途径呢?读者需要做的是跟着作者的思路进行实战,并进一步升华,将有限的技术点重新融入无限的Django应用中。 全书思路清晰、语言精炼、解读到位,相信能给从事Python开发的读者带来不一样的收获。 俞晖第四范式副总裁前微软中国开发者市场及社区生态负责人

内容简介

本书主要介绍了Django编程开发与运维过程中涉及的方法、技巧和实战经验,共分5篇。“第1篇 基础”介绍用Django开发Web应用的基础知识;“第2篇 后台项目实战”通过开发一个商城系统的后台来融合前面章的知识点;“第3篇 进阶”通过Django Rest Framework框架来设计和实现RESTful风格的接口,以及分层的自动化测试和基于Redis的缓存技术;“第4篇 前台项目实战”使用前后端分离的方式开发商城系统前台,涉及Vue.js、Axios、Vue Router、Vuex、RESTful接口等技术。“第5篇 部署运维”涉及Django的传统部署,Django的Docker部署,持续集成,持续交付和持续部署,运维监控。本书通过完整的商城系统实例,融合了Django开发中涉及的知识点;通过大量实例手把手带领读者从需求、开发、集成、代码安全检测、测试、部署上线等环节践行“软件开发运维一体化”的理念。

目录

第1篇 基 础 第1章 走进Django /2 1.1 了解Django /2 1.1.1 Django发展历史和版本 /2 1.1.2 MVC和MTV模式 /3 1.2 安装Django /5 1.2.1 安装Python虚拟环境 /5 1.2.2 在Windows中安装Django /7 1.3 用VS Code编辑器进行Django开发 /8 1.3.1 设置中文界面 /8 1.3.2 安装Python插件 /9 1.3.3 安装Django插件 /9 1.4 【实战】开发第1个Django应用 /10 1.4.1 创建项目 /10 1.4.2 创建应用 /10 1.4.3 处理控制器 /12 1.4.4 处理模板 /12 1.4.5 运行应用 /13 1.5 Django项目的运行和调试 /13 1.5.1 设置运行环境 /14 1.5.2 调试项目 /14 第2章 网站的入口――Django的路由和视图 /16 2.1 认识路由 /16 2.1.1 路由系统的基本配置 /16 2.1.2 【实战】用“路由包含”简化项目的复杂度 /17 2.1.3 解析路由参数 /18 2.1.4 【实战】用re_path()方法正则匹配复杂路由 /20 2.1.5 反向解析路由 /22 2.2 认识视图函数 /23 2.2.1 什么是视图函数 /23 2.2.2 视图函数的底层原理 /24 2.2.3 视图处理函数的使用 /27 2.3 认识视图类 /30 2.3.1 什么是视图类 /30 2.3.2 对比视图函数和视图类 /30 2.3.3 利用视图类进行功能设计 /31 第3章 页面展现――基于Django模板 /36 3.1 Django模板语言――DTL /36 3.1.1 模板变量 /36 3.1.2 模板标签 /38 3.1.3 模板过滤器 /42 3.2 模板的高级用法 /43 3.2.1 模板转义 /43 3.2.2 【实战】自定义过滤器 /44 3.2.3 【实战】自定义标签 /46 3.3 模板继承 /49 3.3.1 设计母版页 /49 3.3.2 设计内容页 /50 3.3.3 设计组件 /51 3.4 配置模板文件 /52 3.4.1 理解HTML、CSS和JavaScript /52 3.4.2 配置静态文件 /53 第4章 使用数据库――基于Django模型 /55 4.1 Django模型 /55 4.1.1 定义模型 /55 4.1.2 了解模型中的关系 /59 4.1.3 配置项目文件 /63 4.1.4 迁移数据 /64 4.2 用Django中的ORM操作数据库 /66 4.2.1 了解ORM /66 4.2.2 熟悉QuerySet对象 /67 4.2.3 查询数据 /69 4.2.4 新增数据 /70 4.2.5 更新数据 /71 4.2.6 删除数据 /71 4.2.7 操作关联表 /71 4.2.8 F()函数和Q()函数 /77 4.2.9 执行原生SQL /78 4.2.10 事务处理 /81 第5章 自动生成界面――基于Django表单 /84 5.1 HTML表单 /84 5.1.1 用令牌CSRF保证表单的安全 /85 5.1.2 【实战】用HTML表单上传文件 /86 5.2 Django的Form表单 /87 5.2.1 认识Form表单 /87 5.2.2 表单数据的校验 /93 5.2.3 表单数据的获取 /97 5.2.4 【实战】用Form表单上传文件 /98 5.3 Django的模型表单 /100 5.3.1 认识模型表单 /100 5.3.2 校验模型表单数据 /101 5.3.3 处理模型表单数据 /102 5.4 使用AJAX提交表单 /103 5.4.1 基于jQuery技术实现AJAX /103 5.4.2 在AJAX请求中设置令牌csrf_token /104 5.4.3 【实战】使用AJAX实现用户登录 /105 第6章 用户认证 /107 6.1 初识用户认证 /107 6.1.1 认识Auth模块 /107 6.1.2 了解用户权限数据表 /109 6.2 用户管理 /109 6.2.1 用户注册 /110 6.2.2 用户登录 /111 6.2.3 扩展用户模型 /113 6.3 【实战】利用用户模型实现用户身份认证及状态保持 /114 6.3.1 增加视图函数myuser_reg() /114 6.3.2 增加视图函数myuser_login() /115 6.3.3 用户退出的设置 /115 6.3.4 用户首页的显示 /115 6.4 权限管理 /117 6.4.1 权限的设置 /117 6.4.2 权限认证的相关方法 /117 6.4.3 自定义用户权限 /118 6.5 【实战】用装饰器控制页面权限 /119 6.5.1 增加权限装饰器 /119 6.5.2 修改模板文件 /120 6.5.3 设置项目配置文件 /120 6.5.4 测试权限 /120 6.6 中间件技术 /121 6.6.1 认识Django中间件 /122 6.6.2 使用Django中间件 /123 6.6.3 【实战】用中间件简化权限认证 /125 第2篇 后台项目实战 第7章 【实战】开发一个商城系统的后台 /128 7.1 商城系统后台的设计分析 /128 7.1.1 需求分析 /128 7.1.2 架构设计 /129 7.1.3 数据库模型设计 /130 7.2 使用Django自带的Admin后台管理系统 /131 7.2.1 创建商城系统后台项目 /131 7.2.2 登录Admin后台管理系统 /133 7.2.3 配置Admin后台管理系统 /133 7.3 用Bootstrap框架实现商城系统后台 /136 7.3.1 开发“用户注册”模块 /136 7.3.2 开发“用户登录”模块 /140 7.3.3 开发商城系统后台首页面 /143 7.3.4 开发“用户信息维护”模块 /146 7.3.5 开发“商品分类管理”模块 /156 7.3.6 开发“商品信息管理”模块 /159 第3篇 进 阶 第8章 接口的设计与实现 /168 8.1 前后端分离 /168 8.1.1 了解前后端分离 /168 8.1.2 为什么要前后端分离 /169 8.1.3 如何实施前后端分离 /171 8.1.4 前后端分离的技术栈 /171 8.2 设计符合标准的RESTful接口 /172 8.3 序列化和反序列化 /174 8.3.1 认识序列化和反序列化 /174 8.3.2 用JSON模块进行数据交互 /174 8.3.3 用JsonResponse类进行数据交互 /175 8.4 接口开发――基于Django Rest Framework框架 /176 8.4.1 安装DRF框架 /177 8.4.2 用Serializer类和ModelSerializer类进行序列化操作 /177 8.4.3 请求和响应 /182 8.4.4 【实战】用装饰器@api-view实现视图函数 /183 8.4.5 【实战】用APIView类实现视图类 /185 8.4.6 【实战】用Mixins类改进RESTful接口 /187 8.4.7 【实战】用GenericAPIView类实现视图类 /190 8.4.8 用视图集ViewSets改进RESTful接口 /192 8.4.9 分页 /197 8.4.10 过滤、搜索和排序 /198 8.4.11 自定义消息格式 /202 8.4.12 自定义异常格式 /207 8.5 接口安全机制 /209 8.5.1 基于DRF框架实现Token认证 /209 8.5.2 基于DRF框架实现JWT认证 /212 8.5.3 基于后端技术的跨域解决方案 /218 8.6 【实战】实现商城系统的接口 /220 8.6.1 用户相关接口 /220 8.6.2 商品相关接口 /226 8.6.3 订单相关接口 /233 8.6.4 基础接口――“地址信息”接口 /241 8.7 【实战】利用DRF生成接口文档 /243 8.7.1 安装依赖 /243 8.7.2 配置文件 /243 8.7.3 测试 /243 8.8 【实战】利用Swagger服务让接口文档更专业 /244 8.8.1 安装配置django-rest-swagger /244 8.8.2 配置视图类 /244 8.8.3 配置路由 /245 8.8.4 运行效果 /245 第9章 分层的自动化测试 /246 9.1 分层的自动化测试 /246 9.1.1 单元自动化测试 /247 9.1.2 接口自动化测试 /247 9.1.3 用户界面自动化测试 /248 9.2 单元自动化测试 /248 9.2.1 认识单元测试框架unittest /248 9.2.2 【实战】用unittest进行单元测试 /249 9.2.3 【实战】用HTMLTestRunner生成HTML报告 /251 9.2.4 【实战】用Pytest进行单元测试 /252 9.2.5 【实战】在Django中编写和运行测试用例 /255 9.3 接口自动化测试 /256 9.3.1 【实战】进行Postman测试 /257 9.3.2 【实战】用“Requests + Pytest”实现接口自动化测试 /258 9.4 用户界面自动化测试 /260 9.4.1 认识自动化测试Selenium库 /260 9.4.2 安装Selenium库 /260 9.4.3 基本使用 /261 9.4.4 页面元素定位的方法 /262 9.4.5 Selenium库的高级用法 /263 9.4.6 【实战】自动化测试商城后台管理系统的登录页面 /268 第10章 基于Redis的缓存技术 /270 10.1 为什么需要缓存 /270 10.2 用Django内置模块实现缓存 /270 10.2.1 基于数据库方式实现缓存 /271 10.2.1 缓存视图函数和视图类 /271 10.3 用DRF框架实现缓存 /273 10.3.1 用装饰器完成缓存 /273 10.3.2 用CacheResponseMixin类完成缓存 /274 10.4 用Redis实现缓存 /275 10.4.1 搭建Redis环境 /275 10.4.2 用Django操作Redis /276 10.4.3 【实战】用Redis存储session信息 /278 第4篇 前台项目实战 第11章 开发商城系统的前台(接第7章实战) /282 11.1 商城系统前台的设计分析 /282 11.1.1 需求分析 /282 11.1.2 架构设计 /283 11.2 前端开发利器――Vue.js框架 /284 11.2.1 认识Vue.js /284 11.2.2 用Vue-CLI脚手架快速搭建项目骨架 /284 11.2.3 用NPM进行包管理和分发 /286 11.2.4 用npm run build命令打包项目 /287 11.2.5 用Visual Stdio Code编辑器进行代码开发 /287 11.3 Vue.js的基本操作 /287 11.3.1 用插值实现数据绑定 /288 11.3.2 用computed属性实现变量监听 /289 11.3.3 用class和style设置样式 /290 11.3.4 用v-if实现条件渲染 /291 11.3.5 用v-for实现列表渲染 /292 11.3.6 用“v-on:”或“@”实现事件绑定 /293 11.3.7 用v-model实现双向数据绑定 /294 11.4 用Vue Router库实现路由管理 /295 11.4.1 了解Vue Router库 /295 11.4.2 基本用法 /296 11.5 用Axios库实现数据交互 /297 11.5.1 了解Axios库 /297 11.5.2 基本用法 /297 11.6 用Vuex实现状态管理 /299 11.6.1 基本用法 /299 11.6.2 用mutations和actions操作变量 /301 11.6.3 用getters获取变量 /303 11.6.4 用扩展运算符简化编写 /304 11.7 【实战】用Vue.js开发商城系统的前台 /304 11.7.1 核心技术点介绍 /305 11.7.2 公共页面开发 /307 11.7.3 “商品首页”模块开发 /313 11.7.4 “商品列表”模块开发 /321 11.7.5 “商品详情”模块开发 /328 11.7.6 “用户注册”模块开发 /332 11.7.7 “用户登录”模块开发 /335 11.7.8 “购物车管理”模块开发 /339 11.7.9 “订单管理”模块开发 /344 11.7.10 “个人中心”模块开发 /348 第5篇 部 署 运 维 第12章 Django的传统部署 /358 12.1 部署前的准备工作 /358 12.1.1 准备虚拟机 /358 12.1.2 安装Python 3.8.2 /359 12.1.3 安装虚拟环境和Django /359 12.2 使用MySQL数据库 /361 12.2.1 安装MySQL数据库 /361 12.2.2 配置MySQL数据库 /362 12.2.3 客户端连接MySQL数据库 /363 12.2.4 【实战】生成商城系统的数据库和表 /365 12.3 用uWSGI进行部署 /365 12.3.1 WSGI、uwsgi和uWSGI的关系 /365 12.3.2 安装uwsgi软件 /366 12.3.3 启动并测试uwsgi /367 12.3.4 详解配置文件 /367 12.3.5 常用命令 /368 12.3.6 【实战】部署商城系统后台 /368 12.4 用Gunicorn进行部署 /370 12.4.1 安装Gunicorn /370 12.4.2 启动服务并测试 /371 12.4.3 编写配置文件 /371 12.4.4 【实战】部署商城系统接口 /372 12.5 用Supervisor管理进程 /373 12.5.1 安装和配置 /373 12.5.2 了解配置文件 /374 12.5.3 常用命令 /374 12.5.4 Web监控界面 /375 12.5.5 【实战】用Supervisor管理进程 /376 12.6 用Nginx进行代理 /377 12.6.1 正向代理和反向代理 /377 12.6.2 为什么用了uWSGI还需要用Nginx /378 12.6.3 安装Nginx /378 12.6.4 了解配置文件 /379 12.6.5 【实战】部署商城系统后台 /381 12.6.6 【实战】部署商城系统接口 /382 12.6.7 【实战】部署商城系统前台 /383 12.6.8 【实战】利用Nginx负载均衡部署商城系统接口 /384 第13章 Django的Docker部署 /388 13.1 介绍Docker /388 13.1.1 为什么要使用Docker /388 13.1.2 虚拟机和容器的区别 /390 13.1.3 了解Docker的镜像、容器和仓库 /390 13.2 安装并启动Docker /392 13.2.1 安装Docker /392 13.2.2 启动Docker /393 13.3 操作Docker镜像 /394 13.3.1 搜索镜像 /394 13.3.2 获取镜像 /394 13.3.3 查看镜像 /395 13.3.4 导入/导出镜像 /396 13.3.5 配置国内镜像仓库 /396 13.4 操作Docker容器 /397 13.4.1 启动容器 /397 13.4.2 进入容器 /399 13.4.3 停止容器 /400 13.4.4 删除容器 /400 13.4.5 复制容器中的文件 /401 13.4.6 查看容器中的日志 /401 13.5 【实战】用Docker部署MySQL /401 13.5.1 拉取镜像 /401 13.5.2 创建容器 /402 13.5.3 进入MySQL容器 /402 13.6 【实战】用Docker方式部署Redis /403 13.6.1 拉取Redis /403 13.6.2 创建并启动Redis容器 /404 13.7 制作自己的镜像――编写Dockerfile文件 /404 13.7.1 语法规则 /404 13.7.2 构建Nginx镜像 /405 13.8 将镜像推送到私有仓库Harbor中 /407 13.8.1 搭建Harbor私有仓库 /407 13.8.2 安装Docker-Compose /407 13.8.3 安装Harbor /407 13.8.4 登录Harbor /409 13.8.5 配置、使用Harbor /409 13.9 【实战】用Docker部署商城系统的接口 /411 13.9.1 拉取并启动MySQL容器 /411 13.9.2 创建接口镜像并启动容器 /411 13.9.3 拉取并启动Nginx容器 /413 13.10 【实战】用Docker Compose部署多容器 /416 13.10.1 编排容器文件 /416 13.10.2 构建和启动 /417 第14章 持续集成、持续交付与持续部署 /419 14.1 了解持续集成 /419 14.2 了解持续交付 /419 14.3 了解持续部署 /420 14.4 代码版本管理――基于码云 /420 14.4.1 Git中的4个概念――工作区、暂存区、本地仓库、远程仓库 /420 14.4.2 克隆远程库到本地库 /421 14.5 进行持续集成――基于Jenkins /422 14.5.1 安装Jenkins /422 14.5.2 【实战】商城系统接口的持续构建 /424 14.6 进行代码质量扫描――基于SonarQube /429 14.6.1 安装SonarQube /430 14.6.2 【实战】自动化代码质量扫描 /431 14.7 用Jenkins进行持续部署――基于SSH /436 14.7.1 安装插件 /436 14.7.2 配置Publish over SSH项 /436 14.7.3 配置SSH免密登录 /437 14.7.4 配置SSH Server /438 14.7.5 配置“构建” /438 14.7.6 立即构建 /440 14.8 进行自动化测试――基于“Jenkins + Allure + Pytest” /440 14.8.1 安装 /440 14.8.2 配置“构建” /442 14.8.3 配置“构建后操作” /443 14.8.4 立即构建 /444 14.8.5 常见问题的处理 /445 14.9 【实战】用Jenkins流水线部署商城系统接口 /446 14.9.1 流水线操作的语法 /446 14.9.2 部署商城系统接口 /447 第15章 运维监控――基于Prometheus + Grafana /454 15.1 认识Prometheus /454 15.1.1 Prometheus的核心组件 /455 15.1.2 安装并启动 /455 15.1.3 查看监控指标数据和图表 /456 15.1.4 了解Prometheus的主配置文件 /456 15.2 认识Grafana /457 15.2.1 安装 /458 15.2.2 配置数据源 /458 15.2.3 导入模板 /459 15.3 监控主机和服务――基于Prometheus的组件Exporter /460 15.3.1 监控主机 /460 15.3.2 监控MySQL数据库 /462 15.3.3 监控Redis /464 15.4 实现邮件报警――基于Prometheus的组件Altermanager /465 15.4.1 安装配置Alertmanager /465 15.4.2 了解配置文件 /466 15.4.3 设置报警规则 /467 15.5 容器监控报警――基于Prometheus的组件cAdvisor /468 15.5.1 安装cAdvisor /469 15.5.2 启动容器 /469 15.5.3 导入模板 /469 15.6 对Django应用进行监控 /469 15.6.1 安装django_prometheus包 /470 15.6.2 配置settings.py文件 /470 15.6.3 配置路由并访问 /470 15.6.4 配置Prometheus /471 15.6.5 添加模板 /471
展开全部

作者简介

现就职于中国电信新疆公司企业信息化部,先后主持多个大型项目,先后荣获集团科技进步二等奖,省公司科技进步一等奖。微软*有价值专家(MSMVP),20年的IT开发经验,擅长C#、python编程,擅长C/S、B/S编程,具有丰富的项目实战开发经验。曾负责微软全国.NET俱乐部的区域发起与推广,具有丰富的线上线下培训经验。现致力于.NET Core的应用和推广。曾作为软件创新英雄,在"北大百年讲堂”接受比尔盖茨先生的颁奖。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航