【粉丝福利社】Django Web项目开发实战
您希望开发可靠、安全且与众不同的应用程序,而不是在样板代码上花费数个小时吗?若答案是肯定的,熟悉Django框架则是您良好的起点。Django通常被称作功能齐全的Web开发框架,它具有构建独立应用程序所需的所有核心功能。本书秉承这一原则并通过Python构建真实的应用程序。本书首先介绍Django的基本概念,并通过构建Bookr网站(一个书评储存库)介绍Django的主要功能。这个端到端的案例研究
🏆 作者简介,愚公搬代码
🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,51CTO博客专家等。
🏆《近期荣誉》:2023年华为云十佳博主,2022年CSDN博客之星TOP2,2022年华为云十佳博主等。
🏆《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
🏆🎉欢迎 👍点赞✍评论⭐收藏
🚀前言
您希望开发可靠、安全且与众不同的应用程序,而不是在样板代码上花费数个小时吗?若答案是肯定的,熟悉Django框架则是您良好的起点。Django通常被称作功能齐全的Web开发框架,它具有构建独立应用程序所需的所有核心功能。
本书秉承这一原则并通过Python构建真实的应用程序。
本书首先介绍Django的基本概念,并通过构建Bookr网站(一个书评储存库)介绍Django的主要功能。这个端到端的案例研究被划分为一些列的小型项目,这些项目将以练习和操作的方式呈现,使读者以一种轻松、可实现的方式领略其中的内容。
随着过程的不断深入,读者将学习各种操作技能,包括:如何向静态文件提供服务并将CSS、JavaScript和图像添加至应用程序中;如何实现表单并接收用户的输入内容,以及如何管理会话以确保可靠的用户体验。本书涵盖了作为真实Web应用程序开发周期一部分的关键日常任务。
在阅读完本书后,读者将能够拥有相关技能,并利用Django开发自己的项目。
适用读者
本书面向渴望拥有Django框架开发技能的程序员。为了更好地理解本书中的概念,读者应具备基本的Python编程知识,并熟悉JavaScript、HTML和CSS。
第1章开始设置Django项目。我们将学习如何启动Django项目、响应Web请求并使用HTML模板。
第2章引入Django数据模型,SQL数据库的数据持久化方法。
第3章在第1章内容的基础上深入考查如何将Web请求路由至Python代码,并渲染HTML模板。
第4章展示如何使用Django的内建Admin GUI,以创建、更新和删除存储在模型中的数据。
第5章阐述如何利用样式和图像增强网站,以及如何方便地管理这些文件。
第6章考查如何利用Django的Forms模块收集用户的输入内容。
第7章在第6章内容的基础上完成,即添加更加高级的验证逻辑,并提升表单的功能。
第8章讨论如何进一步提升网站,即允许用户上传文件,并利用Django向这些文件提供服务。
第9章引入Django会话,并以此存储用户数据并对用户进行身份验证。
第10章继续讨论第4章中的内容,随着对Django有了更深入的理解,我们可利用高级特性自定义Django管理。
第11章介绍如何利用Django的高级模板特性和类来减少代码的编写量。
第12章考查如何在Django中添加REST API,以提供编程方式从不同的应用程序中访问数据。
第13章通过Django生成除HTML之外的其他文件,进而扩展Django的功能。
第14章则是实际开发过程中的重要部分。本章显示如何使用Django和Python测试框架验证代码。
第15章展示一些社区构建的库,以及如何使用已有的第三方代码快速地向项目中添加功能。
第16章通过集成第12章创建的React和REST API以提供与项目之间的交互性。
第17章通过设置服务器考查应用程序的部署过程。读者可访问本书的GitHub存储库下载本章内容。
第18章展示如何将项目部署至虚拟服务器上而结束项目的开发过程。读者可访问本书的GitHub存储库下载本章内容。
🚀一、Django Web项目开发实战
本文送出的书籍是这本:
🔎1.内容简介
《Django Web项目开发实战》详细阐述了与Django开发相关的基本知识,主要包括Django简介,模型和迁移,URL映射、视图和模板,Django admin简介,服务于静态文件,表单,高级表单验证和模型表单,媒体服务和文件上传,会话和身份验证,高级Django管理和定制,高级模板和基于类的视图,构建REST API,生成CSV、PDF和其他二进制文件,测试机制,Django第三方库,在Django中使用前端JavaScript库等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。
本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学用书和参考手册。
🔎2.作者简介
本·肖恩是新西兰奥克兰的一名软件工程师。他从事开发工作已超过 14 年,自 2007 年以来一直使用 Django 构建网站。
在此期间,他的经验帮助了许多不同类型的公司,规模从初创公司到大型企业不等。他还对机器学习、数据科学、自动化部署和 DevOps 感兴趣。
🔎3.目录
第1章 Django简介 1
1.1 简介 1
1.2 搭建Django项目和应用程序 2
1.3 模型-视图-模板 6
1.3.1 模型 6
1.3.2 视图 7
1.3.3 模板 7
1.3.4 MVT实战 8
1.3.5 HTTP简介 9
1.3.6 处理请求 14
1.3.7 Django项目 15
1.3.8 manage.py文件 15
1.3.9 myproject目录 16
1.3.10 Django开发服务器 16
1.3.11 Django应用程序 17
1.3.12 PyCharm设置 18
1.3.13 视图 24
1.3.14 URL映射 25
1.3.15 GET、POST和QueryDict对象 30
1.3.16 查看Django设置 34
1.3.17 在代码中使用设置项 35
1.3.18 在应用程序目录中查找HTML模板 36
1.3.19 利用render函数渲染模板 39
1.3.20 渲染模板中的变量 41
1.3.21 调试和错误处理 43
1.3.22 异常 43
1.3.23 调试 46
1.4 本章小结 52
第2章 模型和迁移 53
2.1 简介 53
2.2 数据库 54
2.2.1 关系型数据库 54
2.2.2 非关系型数据库 55
2.2.3 利用SQL的数据库操作 55
2.2.4 关系型数据库中的数据类型 55
2.3 SQL CRUD操作 59
2.3.1 SQL创建操作 60
2.3.2 SQL读取操作 60
2.3.3 SQL更新操作 61
2.3.4 SQL删除操作 61
2.3.5 Django ORM 62
2.3.6 数据库配置和Django应用程序的创建 63
2.3.7 Django应用程序 64
2.3.8 Django迁移 64
2.3.9 Django模型和迁移 66
2.3.10 字段类型 67
2.3.11 字段选项 67
2.3.12 主键 70
2.4 关系 72
2.5 多对一关系 72
2.6 多对多关系 73
2.6.1 一对一关系 75
2.6.2 添加Review模型 76
2.6.3 模型方法 77
2.6.4 迁移reviews应用程序 78
2.7 Django的数据库的CRUD操作 80
2.7.1 利用外键创建一个对象 83
2.7.2 使用create()和set()方法创建多对多关系 86
2.7.3 读取操作 86
2.7.4 使用get()方法返回一个对象 87
2.7.5 通过过滤机制检索对象 89
2.7.6 根据字段查找进行过滤 90
2.7.7 针对过滤操作使用模式匹配 90
2.7.8 通过排除检索对象 91
2.7.9 利用order_by()方法检索对象 91
2.7.10 在关系间进行查询 94
2.7.11 使用外键进行查询 94
2.7.12 使用模型名进行查询 94
2.7.13 使用对象实例在外键关系间进行查询 94
2.7.14 填写Bookr项目的数据库 98
2.8 本章小结 99
第3章 URL映射、视图和模板 101
3.1 简介 101
3.2 基于函数的视图 101
3.3 基于类的视图 102
3.4 URL配置 103
3.5 模板 106
3.6 Django模板语言 110
3.6.1 模板变量 110
3.6.2 模板继承 114
3.7 基于Bootstrap的模板样式 115
3.8 本章小结 120
第4章 Django admin简介 121
4.1 简介 121
4.2 创建超级用户账户 122
4.3 使用Django admin应用程序的CRUD操作 124
4.3.1 创建 125
4.3.2 检索 127
4.3.3 更新 128
4.3.4 删除 130
4.3.5 用户和分组 131
4.4 注册reviews模型 136
4.4.1 更改列表 138
4.4.2 出版社更改列表 139
4.4.3 图书更改页面 142
4.5 定制管理界面 147
4.5.1 站点范围内的Django管理定制 147
4.5.2 从Python shell中检查AdminSite对象 148
4.5.3 子类化AdminSite 148
4.5.3 定制ModelAdmin类 154
4.5.4 搜索栏 163
4.6 本章小结 171
第5章 服务于静态文件 173
5.1 简介 173
5.2 静态文件处理 174
5.2.1 静态文件查找器 175
5.2.2 静态文件查找器:在请求期间使用 176
5.2.3 AppDirectoriesFinder 177
5.2.4 静态文件命名空间 177
5.2.5 利用静态模板标签生成静态URL 182
5.2.6 FileSystemFinder 190
5.2.7 静态文件查找器:collectstatic期间的应用 193
5.2.8 STATICFILES_DIRS前缀模式 196
5.2.9 findstatic命令 198
5.2.10 处理最近的文件 201
5.2.11 自定义存储引擎 207
5.3 本章小结 214
第6章 表单 215
6.1 简介 215
6.2 表单的含义 215
6.2.1
元素 217
6.2.2 输入类型 219
6.2.3 具有跨站点请求伪造保护的表单安全性 227
6.2.4 在视图中访问数据 229
6.2.5 选择GET和POST 234
6.2.6 当可以在URL中放置参数时为何使用GET 235
6.3 Django表单库 236
6.3.1 定义一个表单 237
6.3.2 在模板中渲染表单 245
6.4 验证表单并检索Python值 253
6.5 内置字段的验证 258
6.6 本章小结 264
第7章 高级表单验证和模型表单 265
7.1 简介 265
7.2 自定义字段验证和清除机制 266
7.2.1 自定义验证器 266
7.2.2 clean方法 267
7.2.3 多字段验证 269
7.2.4 占位符和初始值 279
7.2.5 创建和编辑Django模型 282
7.2.6 ModelForm类 283
7.3 本章小结 300
第8章 媒体服务和文件上传 301
8.1 简介 301
8.2 设置媒体上传和服务 301
8.3 服务于开发环境中的媒体文件 302
8.4 上下文预处理器以及在模板中使用MEDIA_URL 305
8.5 使用HTML表单上传文件 310
8.5.1 在视图中处理上传文件 311
8.5.2 浏览器发送值的安全性和信任性 313
8.5.3 基于Django表单的文件上传 318
8.5.4 基于Django表单的图像上传 323
8.5.5 利用Pillow重置图像 324
8.5.6 利用Django服务于上传(和其他)文件 328
8.6 在模型实例上存储文件 329
8.6.1 在模型实例上存储图像 332
8.6.2 与FieldFile协同工作 333
8.6.3 在模板中引用媒体 338
8.6.4 ModelForm和文件上传 343
8.7 本章小结 353
第9章 会话和身份验证 355
9.1 简介 355
9.2 中间件 356
9.2.1 中间件模块 356
9.2.2 实现身份验证视图和模板 358
9.2.3 Django中的密码存储 364
9.2.4 概要页面和request.user对象 365
9.2.5 身份验证装饰器和重定向 367
9.2.6 利用身份验证数据增强模板 371
9.3 会话 375
9.3.1 会话引擎 375
9.3.2 是否需要标记cookie内容 376
9.3.3 pickle或JSON存储 376
9.3.4 在会话中存储数据 380
9.4 本章小结 387
第10章 高级Django管理和定制 389
10.1 简介 389
10.2 定制管理站点 390
10.2.1 在Django中发现管理文件 390
10.2.2 Django的AdminSite类 391
10.2.3 覆盖默认的admin.site 395
10.2.4 利用admin.site属性自定义管理站点文本 397
10.2.5 自定义管理站点模板 398
10.3 向管理站点中添加视图 401
10.3.1 创建视图函数 401
10.3.2 访问常见的模板变量 402
10.3.3 映射自定义视图的URL 402
10.3.4 限制自定义视图到管理站点 403
10.3.5 利用模板变量向模板中添加额外的键 406
10.4 本章小结 409
第11章 高级模板和基于类的视图 411
11.1 简介 411
11.2 模板过滤器 412
11.3 自定义模板过滤器 413
11.3.1 模板过滤器 413
11.3.2 设置目录存储模板过滤器 413
11.3.3 设置模板库 414
11.3.4 实现自定义过滤函数 414
11.3.5 在模板中使用自定义过滤器 415
11.3.6 字符串过滤器 418
11.4 模板标签 418
11.4.1 模板标签的类型 419
11.4.2 简单标签 419
11.4.3 如何创建简单的模板标签 419
11.4.4 将模板上下文传递至自定义模板标签中 423
11.4.5 包含标签 424
11.5 Django视图 428
11.6 基于类的视图 428
11.6.1 基于CBV的CRUD操作 435
11.6.2 创建视图 435
11.6.3 更新视图 436
11.6.4 删除视图 437
11.6.5 读取页面 438
11.7 本章小结 440
第12章 构建REST API 441
12.1 简介 441
12.2 REST API 441
12.2.1 Django REST框架 442
12.2.2 安装和配置 442
12.2.3 函数式API视图 443
12.3 序列化器 445
12.3.1 基于类的API视图和通用视图 448
12.3.2 模型序列化器 448
12.4 Viewsets 453
12.5 路由器 453
12.6 身份验证 457
12.7 本章小结 462
第13章 生成CSV、PDF和其他二进制文件 465
13.1 简介 465
13.2 与Python中的CSV文件协同工作 465
13.3 与Python的CSV模块协同工作 466
13.3.1 从CSV文件中读取数据 466
13.3.2 利用Python写入CSV文件 469
13.3.3 以较好的方式读写CSV文件 472
13.4 在Python中处理Excel文件 475
13.4.1 用于数据导出的二进制文件格式 475
13.4.2 利用XlsxWriter包处理XLSX文件 476
13.5 在Python中处理PDF文件 481
13.6 Python中的图形 484
13.6.1 利用plotly生成图形 484
13.6.2 将plotly与Django集成 488
13.7 将可视化与Django集成 488
13.8 本章小结 494
第14章 测试机制 495
14.1 简介 495
14.2 测试的重要性 495
14.3 自动化测试 496
14.4 Django中的测试机制 497
14.4.1 实现测试用例 497
14.4.2 Django中的单元测试机制 497
14.4.3 使用断言 498
14.4.4 断言的类型 500
14.4.5 在每个测试用例运行后执行测试前设置和清理 501
14.5 测试Django模型 502
14.6 测试Django视图 506
14.7 使用身份验证测试视图 509
14.8 Django的RequestFactory类 513
14.9 Django中的测试用例类 516
14.9.1 SimpleTestCase 516
14.9.2 TransactionTestCase 517
14.9.3 LiveServerTestCase 517
14.9.4 模块化测试代码 517
14.10 本章小结 519
第15章 Django第三方库 521
15.1 简介 521
15.1.1 环境变量 522
15.1.2 django-configurations 524
15.1.3 修改manage.py文件 526
15.1.4 源自环境变量的配置 527
15.1.5 dj-database-url 532
15.1.6 Django调试工具栏 536
15.2 django-crispy-forms 556
15.2.1 crispy过滤器 557
15.2.2 crispy模板标签 559
15.2.3 django-allauth 564
15.2.4 利用django-allauth初始化身份认证 569
15.3 本章小结 572
第16章 在Django中使用前端JavaScript库 573
16.1 简介 573
16.2 JavaScript框架 573
16.3 JavaScript简介 575
16.3.1 React 581
16.3.2 组件 582
16.3.3 JSX 589
16.3.4 JSX属性 591
16.3.5 JavaScript Promise 594
16.3.6 fetch函数 595
16.3.7 JavaScript map方法 597
16.3.8 verbatim模板标签 602
16.4 本章小结 607
需要完全了解本书可以看下面:
直达京东购买链接🔗:购买地址《Django Web项目开发实战》
🚀感谢:给读者的一封信
亲爱的读者,
我在这篇文章中投入了大量的心血和时间,希望为您提供有价值的内容。这篇文章包含了深入的研究和个人经验,我相信这些信息对您非常有帮助。
如果您觉得这篇文章对您有所帮助,我诚恳地请求您考虑赞赏1元钱的支持。这个金额不会对您的财务状况造成负担,但它会对我继续创作高质量的内容产生积极的影响。
我之所以写这篇文章,是因为我热爱分享有用的知识和见解。您的支持将帮助我继续这个使命,也鼓励我花更多的时间和精力创作更多有价值的内容。
如果您愿意支持我的创作,请扫描下面二维码,您的支持将不胜感激。同时,如果您有任何反馈或建议,也欢迎与我分享。
再次感谢您的阅读和支持!
最诚挚的问候, “愚公搬代码”
更多推荐
所有评论(0)