✨读完这本书,Python Web开发不再迷茫!✨
😎在当今竞争激烈的Web开发领域,如何选择合适的开发工具和框架,以实现高效、稳定、美观的Web应用,是每个开发者面临的重要问题。而《Django+Vue.js实战派——Python Web开发与运维》一书,正是解决这个问题的金钥匙。本书详细介绍了如何利用Django和Vue.js这两种强大的技术,来完成一个实用的Web商城应用,是学习Python Web开发与运维的必读之作。
⚡️一、Django:强大的后端框架
Django是Python语言的一款优秀的后端框架,它提供了丰富的功能和工具,使得开发者能够快速构建稳定、高效的Web应用。在本书中,作者杨永刚详细介绍了Django的各项功能和用法,包括ORM、模板、表单、认证等核心组件。通过这些内容,读者可以全面了解如何使用Django来构建一个完整的Web商城应用。
👋二、Vue.js:前端MVVM框架
Vue.js是JavaScript语言的一款前端MVVM框架,它以其简洁、灵活的特点,迅速在前端开发领域崭露头角。在本书中,作者同样详细介绍了Vue.js的基础知识和高级用法,包括模板、组件、路由、状态管理等。通过这些内容,读者可以深入了解如何使用Vue.js来构建一个美观、易用的Web商城前端界面。
🌟三、实战派:从零到一构建Web商城应用
本书的最大亮点在于实战派,作者通过一个完整的Web商城应用案例,将Django和Vue.js有机地结合起来,从零开始构建一个完整的Web应用。在这个过程中,读者可以了解到各个模块的开发细节,包括用户认证、商品管理、订单处理、支付接口等。通过这个案例,读者可以深入了解Django和Vue.js在实际开发中的运用,以及如何协同工作,共同构建一个高效、稳定的Web商城应用。
💡四、Python Web开发与运维:打造全方位能力
本书除了介绍Django和Vue.js的开发技巧之外,还深入探讨了Python Web开发与运维的多个方面,包括服务器配置、安全防护、性能优化等。这些内容不仅可以帮助读者打造出更加稳定、安全的Web应用,还可以提升读者的运维能力,使其更加高效地维护和管理Web应用。
👌五、总结:理论与实践的完美结合
💪《Django+Vue.js实战派——Python Web开发与运维》一书理论与实践相结合,不仅介绍了Django和Vue.js的核心概念和用法,还通过一个实战案例,将两种技术完美地结合起来。这本书对于想要提高Web开发与运维水平的读者来说是一本非常值得阅读的书籍。在今后的工作中,我们可以将所学知识运用到实际项目中,实现高效、稳定、美观的Web应用。
👆请点击上面《DjangoVue.js实战派——PythonWeb开发与运维》了解更多详情!☝️
书籍信息
书名:DjangoVue.js实战派——PythonWeb开发与运维
作者:杨永刚
评分:
出版日期:2022-04-01
出版社:电子工业出版社
ISBN:9787121430848
页数:488
定价:128
内容简介
本书主要介绍了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