这是 Django 5 by Example 的代码存储库,由 Antonio Melé 编写并由 Packt 发布。它包含从头到尾完成本书所需的所有支持项目文件。
技术评审员:Mark Walker
前言:保罗·梅尔基奥雷
代码被组织到带有章节号的目录中。例如, Chapter02
包含第 2 章的源代码。每个章节文件夹都有一个requirements.txt
文件,其中包含运行该章代码所需的所有包。可以使用命令pip install -r requirements.txt
安装它们。
使用以下命令运行 Django 开发服务器:
python manage.py runserver
Docker Compose 在第 17 章中进行了解释。但是所有章节都包含 Docker Compose 配置和管理脚本(由 @marksweb 贡献)。
使用 Docker Compose 构建和运行的命令:
./do.sh build ./do.sh run
命令列表:
build [<arg>]
:构建 Docker 镜像。可选参数可以指定要构建的特定图像。
exec [<arg>]
:在容器中执行命令。
compose
:Docker Compose 的最小包装器,确保加载正确的配置文件。
migrate [<arg>]
:应用任何未应用的 Django 迁移。
makemigrations [<arg>]
:创建新的 Django 迁移,并根据需要指定其他参数。
check
:验证 Django 设置。
shell
:在指定容器(web_run)中打开 bash 终端。
start [<arg>]
:启动 Django 服务器和依赖服务。使用 -d 分离运行。
stop [<arg>]
:停止 Django 服务器和相关服务。
Django 5 示例(第 5 版)将指导您完成使用 Django 开发专业 Web 应用程序的整个过程。本书不仅涵盖了该框架最相关的方面,还将教您如何将其他流行技术集成到您的 Django 项目中。
本书将使用易于遵循的分步方法,引导您创建四个实际应用程序、解决常见问题以及实施最佳实践。
读完本书后,您将很好地了解 Django 的工作原理以及如何构建实用的高级 Web 应用程序。
本书需要 Python 3.12+ 和 Django 5。
本书涵盖了广泛的 Web 应用程序开发主题,分为四个不同的 Django 项目:
博客应用程序(第 1-3 章):创建完整的博客应用程序
构建数据模型、视图和 URL
为您的博客实施一个管理网站
对模型使用规范 URL,并为帖子实施 SEO 友好的 URL
构建帖子分页并学习如何创建基于类的视图
使用表单允许读者通过电子邮件分享帖子并使用模型表单实施评论系统
使用 django-taggit 为帖子添加标签,并根据共享标签推荐类似的帖子
实施自定义模板标签以显示最新帖子和评论最多的帖子
实现自定义模板过滤器来渲染 Markdown
为您的博客创建站点地图和 RSS 源
使用 PostgreSQL 实现全文搜索引擎
社交网站(第 4-7 章):创建一个网站来添加书签和共享图像
使用Django身份验证框架实现身份验证
使用自定义配置文件模型扩展用户模型
使用 Diango 消息框架
构建自定义身份验证后端
使用 Python Social Auth 与 Google 一起实施社交身份验证 (OAuth2)
使用 django-extensions 通过 HTTPS 运行开发服务器
使用 easy-thumbnails 生成图像缩略图
在模型中实现多对多关系
使用 JavaScript 和 Django 构建 JavaScript 书签
使用 JavaScript Fetch API 和 Django 添加异步 HTTP 请求
实现无限滚动分页
建立用户关注系统
创建用户活动流并优化查询集
学习使用 Django 信号
使用django-debug-toolbar获取相关调试信息
使用 Redis 计算图像浏览次数
使用 Redis 构建图像排名
电子商务应用程序(第 8-11 章):创建功能齐全的在线商店
构建产品目录的模型
使用 Django 会话创建购物车
创建自定义上下文处理器
管理客户订单
使用 Celery 和 RabbitMQ 发送异步通知
使用 Flower 监控 Celery
集成 Stripe 来处理付款
实施 webhook 以接收来自 Stripe 的付款通知
在 Django 管理站点中构建自定义视图
创建管理操作并生成 CSV 文件
使用 Weasyprint 动态生成 PDF 发票
创建优惠券系统以对订单应用折扣
将折扣与 Stripe 付款相结合
使用Redis构建产品推荐引擎
为商店添加国际化
生成和管理翻译文件
使用 Rosetta 管理翻译
翻译 URL 模式并构建语言选择器
使用 django-parler 翻译模型
使用 django-localflavor 本地化表单
电子学习平台(第 12-17 章):创建包含 CMS 的电子学习平台
建立课程模型
创建和使用数据装置
使用模型继承来创建多态内容
创建自定义模型字段来订购课程内容
实施身份验证视图
使用基于类的视图和混合构建内容管理系统
使用组和权限限制访问
构建表单集来管理课程内容
使用 JavaScript 和 Django 创建拖放功能以就地重新排序内容
使用 django-braces 中的通用 mixins
落实公众意见和学生招生意见
渲染不同类型的内容并使用 django-embed-video
使用缓存框架缓存内容
使用 Memached 和 Redis 缓存后端
使用 django-redisboard 监控 Redis
使用 Django REST Framework 构建 API
为模型和自定义 API 视图创建序列化器
处理API身份验证和权限
构建 API 视图集和路由器
使用 Python 请求使用您的 API
使用 Django Channels 创建实时聊天服务器
使用 Django 和 JavaScript 实现 WebSocket 消费者/客户端
使用Redis设置通道层
使您的 WebSocket 完全异步
通过保留聊天消息来实现聊天历史记录
为多个环境创建设置
使用 Docker Compose 与 PostgreSQL、Redis、Nginx、uWSGI 和 Daphne 配置生产环境
通过 HTTPS 安全地服务您的项目
使用Django系统检查框架
构建自定义中间件
创建自定义管理命令
加入《Discord 社区》一书,参与正在进行的讨论或/并发起新的讨论。您会发现其他开发人员一起阅读本书并互相帮助解决问题。
Django 4 示例
Django 3 示例
Django 2 示例
Django 实例
虽然本书的第五版已翻译成其他语言,但您可以找到以前版本的翻译:
简体中文:Django 4实例精解
波兰语:Django 4。Praktyczne Tworzenie aplikacji sieciowych。维达尼四世
俄语:姜戈 4 в примерах
巴西葡萄牙语:Arenda Django 3 com 示例
塞尔维亚-克罗地亚-波斯尼亚语:Django 3 kroz primere,prevod III izdanja
西班牙语:姜戈 2
如果您已经购买了本书的印刷版或 Kindle 版,则可以免费获得无 DRM 的 PDF 版本。只需点击链接即可获取免费 PDF:https://packt.link/free-ebook/9781805125457
我们还在 GraphicBundle 中提供了一个 PDF 文件,其中包含本书中使用的屏幕截图/图表的彩色图像
第 39 页Post.objects.filter(id_lt=3).count()
代码示例应为Post.objects.filter(id__lt=3).count()