Django 5 Web应用开发实战

文章目录

    • 一、内容简介
    • 二、目录内容
    • 三、值得一读
    • 四、适读人群

在这里插入图片描述

一、内容简介

《Django 5 Web应用开发实战》集Django架站基础、项目实践、开发经验于一体,是一本从零基础到精通Django Web企业级开发技术的实战指南。《Django 5 Web应用开发实战》内容以Python 3.x和Django 5版本为基础,从Django 5构建项目开始,逐步深入讲述Django框架的各项功能要点,每个功能要点从源码角度分析,并在源码的基础上实现自定义的功能开发。还介绍了Django的第三方功能应用,如DRF框架开发API接口、生成网站验证码、站内搜索引擎、第三方网站实现账号注册、异步任务和定时任务、即时通信实现在线聊天,同时介绍了当前流行的前后端分离模式和微服务架构网站的开发,《Django 5 Web应用开发实战》还提供了两个完整的Web实战案例:博客系统和音乐网站平台,从中读者可以学习了解网站开发的全流程,最后介绍了Django项目的上线部署。
《Django 5 Web应用开发实战》注重案例教学,讲解深入浅出,非常易于上手,适合有一定Python基础的开发人员和在校学生学习,也可以用作培训机构和大中专院校Web项目开发的教学实践用书。
image.png
《Django 5 Web应用开发实战》京东链接:https://item.jd.com/14159105.html

二、目录内容

第 1 章 走进Django 5 1
1.1 Django 5的新特性 1
1.2 安装Django 5 4
1.3 创建项目 4
1.4 PyCharm创建项目 6
1.5 初试Django 5 7
1.5.1 Django的操作指令 8
1.5.2 开启Hello World之旅 9
1.6 调试Django项目 11
1.6.1 PyCharm断点调试 11
1.6.2 调试异常 13
1.7 本章小结 15
第 2 章 配置Django项目 16
2.1 基本配置信息 16
2.2 资源文件配置 18
2.2.1 资源路由——STATIC_URL 18
2.2.2 资源集合——STATICFILES_DIRS 19
2.2.3 资源部署——STATIC_ROOT 20
2.2.4 媒体资源——MEDIA 20
2.3 模板配置 21
2.4 数据库配置 22
2.4.1 mysqlclient连接MySQL 22
2.4.2 pymysql连接MySQL 24
2.4.3 多个数据库的连接方式 24
2.4.4 使用配置文件动态连接数据库 25
2.4.5 通过SSH隧道远程连接MySQL 27
2.5 中间件 29
2.6 本章小结 31
第 3 章 路由的编写规则与使用 32
3.1 路由定义规则 32
3.1.1 Django的路由定义 32
3.1.2 路由变量的设置 34
3.1.3 正则表达式的路由定义 36
3.2 命名空间与路由命名 37
3.2.1 命名空间namespace 37
3.2.2 路由命名name 39
3.3 路由的使用方式 40
3.3.1 在模板中使用路由 40
3.3.2 反向解析reverse与resolve 43
3.3.3 路由重定向 46
3.4 本章小结 47
第 4 章 简单直观的FBV视图 49
4.1 设置响应方式 49
4.1.1 返回响应内容 49
4.1.2 设置重定向 52
4.1.3 异常响应 54
4.1.4 文件下载功能 57
4.2 HTTP请求对象 60
4.2.1 获取请求信息 60
4.2.2 文件上传功能 64
4.2.3 Cookie实现反爬虫 68
4.2.4 请求头实现反爬虫 74
4.3 本章小结 77
第 5 章 更现代的CBV视图 78
5.1 数据显示视图 78
5.1.1 重定向视图RedirectView 78
5.1.2 基础视图TemplateView 80
5.1.3 列表视图ListView 83
5.1.4 详细视图DetailView 87
5.2 数据操作视图 89
5.2.1 表单视图FormView 90
5.2.2 新增视图CreateView 92
5.2.3 修改视图UpdateView 94
5.2.4 删除视图DeleteView 96
5.3 日期筛选视图 98
5.3.1 月份视图MonthArchiveView 100
5.3.2 周期视图WeekArchiveView 105
5.4 本章小结 107
第 6 章 深入理解模板 108
6.1 Django模板引擎 108
6.1.1 模板上下文 108
6.1.2 自定义标签 110
6.1.3 模板继承 113
6.1.4 自定义过滤器 115
6.2 Jinja2模板引擎 119
6.2.1 安装与配置 120
6.2.2 模板语法 123
6.2.3 自定义过滤器 125
6.3 本章小结 126
第 7 章 模型与数据库 127
7.1 模型定义与数据迁移 127
7.1.1 定义模型 127
7.1.2 开发个人的ORM框架 131
7.1.3 数据迁移 134
7.1.4 数据导入与导出 137
7.2 数据表关系 138
7.3 数据表操作 142
7.3.1 数据新增 143
7.3.2 数据修改 145
7.3.3 数据删除 146
7.3.4 数据查询 147
7.3.5 多表查询 150
7.3.6 执行SQL语句 154
7.3.7 数据库事务 156
7.4 多数据库的连接与使用 158
7.4.1 多数据库的连接 158
7.4.2 多数据库的使用 161
7.5 动态创建模型与数据表 163
7.6 MySQL分表功能 165
7.7 本章小结 169
第 8 章 表单与模型 170
8.1 初识表单 170
8.2 源码分析Form 173
8.3 源码分析ModelForm 180
8.4 在视图里使用Form 184
8.5 在视图里使用ModelForm 186
8.6 同一网页多个表单 188
8.7 一个表单多个按钮 191
8.8 表单的批量处理 192
8.9 多文件批量上传 196
8.10 本章小结 202
第 9 章 Admin后台系统 203
9.1 走进Admin 203
9.2 源码分析ModelAdmin 206
9.3 Admin首页设置 211
9.4 Admin的二次开发 212
9.4.1 函数get_readonly_fields() 213
9.4.2 设置字段样式 214
9.4.3 函数get_queryset() 215
9.4.4 函数formfield_for_foreignkey() 216
9.4.5 函数formfield_for_choice_field() 217
9.4.6 函数save_model() 218
9.4.7 数据批量操作 219
9.4.8 自定义Admin模板 220
9.4.9 自定义Admin后台系统 222
9.5 本章小结 227
第 10 章 Auth认证系统 228
10.1 内置User实现用户管理 228
10.2 发送邮件实现密码找回 236
10.3 模型User的扩展与使用 241
10.4 权限的设置与使用 248
10.5 自定义用户权限 250
10.6 设置网页的访问权限 251
10.7 用户组的设置与使用 257
10.8 本章小结 260
第 11 章 优化网站性能的Web程序 261
11.1 会话控制 261
11.1.1 会话的配置与操作 261
11.1.2 使用会话实现商品抢购 264
11.2 缓存机制 269
11.2.1 缓存的类型与配置 270
11.2.2 缓存的使用 272
11.3 CSRF防护 275
11.4 消息框架 278
11.4.1 源码分析消息框架 278
11.4.2 消息框架的使用 279
11.5 分页功能 283
11.5.1 源码分析分页功能 283
11.5.2 分页功能的使用 286
11.6 国际化和本地化 289
11.6.1 环境搭建与配置 290
11.6.2 设置国际化 291
11.6.3 设置本地化 292
11.7 单元测试 294
11.7.1 定义测试类 294
11.7.2 运行测试用例 300
11.8 自定义中间件 301
11.8.1 中间件的定义过程 301
11.8.2 中间件实现Cookie反爬虫 305
11.9 异步编程 307
11.9.1 使用多线程 307
11.9.2 启用ASGI服务 310
11.9.3 异步视图 310
11.9.4 异步与同步的转换 313
11.10 信号机制 314
11.10.1 内置信号 314
11.10.2 自定义信号 317
11.10.3 订单的创建与取消 320
11.11 本章小结 323
第 12 章 扩展网站功能的第三方应用 324
12.1 Django Rest Framework框架 324
12.1.1 DRF的安装与配置 324
12.1.2 序列化类Serializer 326
12.1.3 模型序列化类ModelSerializer 330
12.1.4 序列化的嵌套使用 332
12.2 验证码生成与使用 335
12.2.1 Django Simple Captcha的安装与配置 336
12.2.2 使用验证码实现用户登录 338
12.3 站内搜索引擎 342
12.3.1 Django Haystack的安装与配置 342
12.3.2 使用搜索引擎实现产品搜索 345
12.4 第三方网站实现用户注册 349
12.4.1 Social-Auth-App-Django的安装与配置 350
12.4.2 微博账号实现用户注册 353
12.5 异步任务和定时任务 355
12.5.1 Celery的安装与配置 355
12.5.2 异步任务 357
12.5.3 定时任务 359
12.6 即时通信——在线聊天 361
12.6.1 Channels的安装与配置 362
12.6.2 Web在线聊天功能 365
12.7 本章小结 368

三、值得一读

本书基于Django 5及更高版本,涵盖了从入门到架构设计的广泛主题。共16章内容,包括网站基础、路由、视图、模板、模型、表单、Admin后台、Auth认证、常用Web应用、第三方功能应用、博客系统、音乐网站开发、前后端分离与微服务架构、以及部署在Windows和Linux上等内容。书中图文并茂、步骤教学,注重实战项目,介绍主流技术和企业级开发技能。由资深作者撰写,具有丰富的实战经验和经验之谈。

四、适读人群

本书主要适合以下读者阅读:

  1. Django初学者及在校学生
  2. Django初级开发工程师
  3. 从事Python网站开发的技术人员
  4. 其他学习Django的开发人员在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/707183.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java多线程面试重点-1

0. 什么是并发?什么是并行? 并发:把时间分成一段一段,每个线程轮流抢占时间段。 如果时间段非常短,线程切换非常快,被称为伪并行。并行:多个线程可以同时运行。 并发与并行造成的影响&#xff…

如何把路由器设备的LAN口地址为三大私网地址

要将路由器的LAN口地址配置为三大私有IP地址范围之一(10.0.0.0/8、172.16.0.0/12 或 192.168.0.0/16),我们需要访问路由器的管理界面并进行相应的设置。 下面是步骤: 连接到路由器: 连接到路由器的管理界面&#xf…

在vue中循环中调用接口-promise.all();按顺序执行异步处理

🌈🌈🌈目录 场景一 解决 场景二 解决 场景一 数组遍历中每次遍历都需要去请求getStaffCover接口,拿到该接口的结果拼接到数组的每一项,等到数组遍历完之后,拿到拼接好的数组。拼接的数组必须是最终遍历…

计算机网络 —— 应用层(应用层概述及服务方式)

计算机网络 —— 应用层(应用层概述及服务方式) 应用层服务方式C/S(客户端-服务器(C/S)模型)基本概念特点B/S(Browser/Server)基本概念特点应用场景 p2p (对等网络&#…

这三款使用的视频、图片设计工具,提供工作效率

Videograp Videograp是一款专注于视频生成的工具,特别适合需要快速剪辑和编辑视频的用户。Videograp具备以下特点: 影音比例转换:Videograp支持调整视频的分辨率和比例,使其更适合不同的播放环境和设备。 AI快剪:该工…

超市陈列艺术:不仅仅是货品摆放,更是营销策略的体现

品类管理在门店落地的最直观表现就是单品的空间陈列管理,通过陈列细节的差异体现出门店的商品定位与策略。此文分析入木三分,值得学习。 在商品陈列的空间管理领域,不仅要考虑整体的空间陈列,也要对每个商品的空间陈列位置&#…

旅游行业电商平台:数字化转型的引擎与未来发展趋势

引言 旅游行业数字化转型的背景和重要性 随着信息技术的飞速发展,数字化转型成为各行业发展的必然趋势。旅游行业,作为一个高度依赖信息和服务的领域,数字化转型尤为重要。通过数字化手段,旅游行业能够实现资源的高效配置、服务的…

Apache Doris单机快速安装(已踩坑)

官方文档:https://doris.incubator.apache.org/zh-CN/docs/get-starting/quick-start/ 环境: 操作系统:CentOS7.6 X86_64 JDK:Oracle jdk1.8.0_351 1.版本下载 从 doris.apache.org 下载相应的 Doris 安装包,并且解压…

11.QLoRA微调ChatGLM3-6B

实战 QLoRA 微调 ChatGLM3-6B 大模型 实战 PEFT 库 QLoRA ChatGLM3-6B 微调数据集 AdvertiseGen AdvertiseGen 数据集获取 使用ChatGLM3-6b Tokenizer处理数据 关于ig nore_label_id 的设置: 在许多自然语言处理和机器学习框架中, ig nore_label_id 被…

idea在空工程中添加新模块并测试的步骤

ServicesTest是空的工程,没有pom文件。现在需要在ServicesTest目录下添加新模块作为新的工程,目的是写一下别的技术功能。 原先目录结构,ServicesTest是空的工程,没有pom文件。下面的几个模块是新的工程,相互独立。 1.…

树莓派4B学习笔记8:开机自启动Python脚本_kill关闭后台脚本

今日继续学习树莓派4B 4G:(Raspberry Pi,简称RPi或RasPi) 本人所用树莓派4B 装载的系统与版本如下: 版本可用命令 (lsb_release -a) 查询: Opencv 版本是4.5.1: 紧接着上篇文章学习的串口通信,今日学习如何让树莓派开机…

[Algorithm][贪心][柠檬水找零][将数组和减半的最少操作次数][最大数][摆动序列]详细讲解

目录 1.柠檬水找零1.题目链接2.算法原理详解3.代码实现 2.将数组和减半的最少操作次数1.题目链接2.算法原理详解3.代码实现 3.最大数1.题目链接2.算法原理详解3.代码实现 4.摆动序列1.题目链接2.算法原理详解3.代码实现 1.柠檬水找零 1.题目链接 柠檬水找零 2.算法原理详解 …

网络安全 - ARP 欺骗原理+实验

APR 欺骗 什么是 APR 为什么要用 APR A P R \color{cyan}{APR} APR(Address Resolution Protocol)即地址解析协议,负责将某个 IP 地址解析成对应的 MAC 地址。 在网络通信过程中会使用到这两种地址,逻辑 IP 地址和物理 MAC 地址&…

短剧APP小程序开发之小程序内存管理挑战:短剧缓存与释放策略探讨(第二篇)

在上一篇帖子中,我们探讨了小程序内存管理的限制以及缓存策略的设计。本篇将进一步探讨释放策略的具体实现以及优化方案,以支持大量短剧内容的加载和播放。 释放策略的具体实现 监听内存警告:小程序提供了监听内存警告的API,开发…

【PL理论】(22) 函数式语言:多参数 | 柯里化 (Currying) : 将多参数函数实现为返回一个函数的函数

💭 写在前面:本章我们将继续讲解函数式语言,介绍多参数,着重讲解柯里化的概念,将多参数函数实现为返回一个函数的函数。 目录 0x00 多参数(Multiple Arguments) 0x01 柯里化(Curr…

Android framework的Zygote源码分析

文章目录 Android framework的Zygote源码分析linux的fork Android framework的Zygote源码分析 init.rc 在Android系统中,zygote是一个native进程,是Android系统上所有应用进程的父进程,我们系统上app的进程都是由这个zygote分裂出来的。zyg…

AI虚拟试穿技术:开启高保真、多场景、多样化服装组合的试穿应用

随着电子商务的快速发展,消费者对于在线购物体验的要求越来越高。特别是在服装领域,消费者渴望能够在购买前直观地了解服装的试穿效果。传统的虚拟试穿技术虽然已有一定的发展,但在不同场景下的高保真度和鲁棒性方面仍面临挑战。为此,我们研发了一种全新的AI虚拟试穿技术,…

电脑开机之后要很久才能进入系统?进入WinPE也是卡顿半天?

前言 小白最近接到了一张很奇怪的电脑维修单,客户说他的工作室电脑开机特别慢,开机之后特别卡顿,在使用的时候也会一卡一卡的。 这事情开始看很简单:估计就是电脑还是机械硬盘,所以开机很慢又卡顿。所以应该是把机械…

vi/vim使用命令

你是否在编辑文件时以为键盘坏了,为什么不能删除呢,为什么不能敲代码呢,等你初识vi,会觉得这个东西为什么设计得这么难用,这篇教程带你熟练得用上这款经典的工具 Vi 是在 Unix 系统上广泛使用的编辑器,Vim …

【车载音视频电脑】嵌入式AI分析车载DVR,支持8路1080P

产品特点 采用H.265 & H.264编解码,节约存储空间、传输流量; 高分辨率:支持8路1080P*15FPS/4路1080P*30FPS、720P、D1等编解码; 支持1张SATA硬盘,取用方便,满足大容量存储要求; 支持1个…