这是一本新鲜出炉的有关 Django 3开发的图书,本书为第4版。众所周知在 Web 开发领域Python 有两大框架:Django 和 Flask,Flask 以其轻量和灵活性而著称,而 Django则通过集成了后台让开发人员可以快速上手并将时间真正地花到产品研发和市场验证上。其强大的生态如 DRF 等也对 Django 本身做了很好的补充。在使用的案例中最知名的可能要属 Instagram 了,据说早期今日头条使用的也是 Django,但笔者并未进行求证(豆瓣的主要技术是Python,但其使用的模板库为Mako)。当然大厂使用的技术栈非常广泛,这里就不断章取义了,对于普通开发者而言 Django 确实是快速创建稳定业务的最佳选择之一。
Django 3 Web Development Cookbook – Fourth Edition by Aidas Bendoraitis, Jake Kronika
想要更深入了解 Python 相关知识的读者可参阅
前言
Django框架专门设计来协助开发者快速高效地构建健壮、强大的网页应用。它将大量枯燥重复的工作都包揽了,解决了项目结构、数据库对象关系映射(ORM)、模板、表单验证、会话、认证、安全、cookie管理、国际化、基本后台管理等问题,并且带有通过脚本访问数据的接口。Django使用Python编程语言进行构建,Python 本身就着重使用清晰、易于阅读的代码。除核心框架外,Django的设计还允许开发者创建可与自己的应用共同使用的第三方模块。Django还拥有知名而活跃的社区,在那里可以找到源代码、获取帮助,也可以贡献社区。
Django 3 网页开发指南 – 第4版将使用Django 3.0框架指引你经历web开发的所有阶段。首先我们会对项目进行配置并创建结构。然后读者将学习到通过可复用的组件来定义数据库结构以及如何在项目的生命周期中管理数据库。接着本书将介绍用于输入和列举数据的表单和视图。我们将使用响应式模板和JavaScript来增强用户体验。再后我们将通过自定义过滤器和标签来丰富Django的模板系统,以让前端开发更为灵活。此后我们调整管理后台界面来简化内容编辑器工作流。此时我们将注意力转移到项目的稳定性和健壮性,来强化安全并优化应用。然后我们学习如何有效存储并操作层级结构。接着演示从不同数据源采集数据并向其它人以一系列简单的格式提供你自己的数据。再接着我们讲解一些Django项目代码编写和调试的技巧。然后进入到代码测试一些方法的学习。在全书完结前,我们会展示如何将项目部署到生产环境中。最后我们通过设置常见维护实践来完成整个开发周期。
不同于其它Django书籍,我们仅关注框架本身,本书包含很多重要的第三方模块,让读者利用这些必要的工具来完成网页开发。此外,我们提供了一些使用Bootstrap前端框架和jQuery JavaScript 库的示例,这两者简化了高级、复杂用户界面的创建。
本书面向人群
如果你拥有Django开发经验而又希望提升开发技能,这本书很适合你。我们设计了一些针对希望构建多语言、安全、响应式并在未来可以进行扩展的健壮项目的中级和专业Django开发者的内容。
本书主要内容
第1章 Django 3.0入门:讲解所有Django项目必要的设置及配置步骤。包括虚拟环境、Docker及跨环境和数据库的项目设置。
第2章 模型和数据库结构:讲解如何在模型构建中编写可复用的代码。在新的应用中首先要定义数据模型,它们是所有项目的支柱。你还将学习到如何在数据库中保存多语言数据。同时还将学习到如何使用Django的迁移(migration)来管理数据库模式修改和数据操作。
第3章 表单和视图:讲解为数据展示和编辑构建视图和表单的方式。读者将学习到如何使用微格式及其它协议来让页面对机器可读性更强,进而在搜索结果和社交网络中进行展示。我们还会学习如生成PDF文档并实现多语言搜索。
第4章 模板和JavaScript:涵盖共同模板和JavaScript的实际示例。 这两者的组合如:用 渲染后的模板向用户展示信息、用JavaScript为现代站点中更丰富的用户体验提供关键性的提升。
第5章 自定义模板过滤器和标签:讲解如何创建及使用自己的模板过滤器和标签。可以看到,可以扩展默认的Django模板系统来满足模板开发者的需求。
第6章 模型管理:探索默认的Django后台管理界面并引导读者扩展自己的功能。
第7章 安全和性能:深入讲解Django内部和外部的一些对项目进行安全保障和优化的方法。
第8章 层级结构: 讲解Django中树状结构的创建和操作,,以及在这些工作流中集成django-mptt或treebeard库的好处。本章展示如何使用这两个库来实现层级的展现和管理。
第9章 导入、导出数据: 讲解数据在不同格式间的转换,以及不同数据源之间的注意事项。本章中使用自定义管理命令来进行数据导入,利用sitemap、RSS和 REST API来进行数据导出。
第10章 锦上添花: 展示一些在日常网页开发和调试中很有用的其它代码段和技巧。
第11章 测试:介绍各种测试类型的不同,并提供一些如何测试项目代码的典型示例。
第12章 部署:将第三方应用部署到Python包索引(PyPI)并将Django项目部署到自有服务器上。
第13章 维护:讲解如何创建数据库备份、为常规任务设置定时任务,以及为后续分析添加事件日志。
本书使用Django 3.0进行开发,要求有:
- Python 3.6及以上版本
- 图像操作的Pillow库
- 使用mysqlclient库操作MySQL,或使用psycopg2-binary 库来操作PostgreSQL数据库
- Docker桌面版或Docker Toolbox实现系统可视化,或是内置的虚拟环境来保持每个项目的Python模块相互分离
- Git版本控制
未来Django 将采取每两年迭代一个大版本的策略,2.2 LTS的支持截止至2022年4月,所以大家也不必着急马上升级至3.x,但更早的版本官方已不再提供支持了。
Django 常用资源
- Django 开发相关
- 官方文档
- 前端相关
- Python 官方文档
- 软件安装
- 第三方工具