Django是一个功能强大的Python Web框架,支持快速开发过程以及简洁、实用的设计方案。Django是高水准的Python编程语言驱动的一个开源模型,是一个视图、控制器风格的Web应用程序框架,它起源于开源社区。使用这种架构,程序员可以方便、快捷地创建高品质、易维护、数据库驱动的应用程序。另外,在Django框架中,还包含许多功能强大的第三方插件,使得Django具有较强的可扩展性。
第1章 Django 3.0开始之旅 1
1.1 简介 1
1.2 技术需求 2
1.3 与虚拟环境协同工作 2
1.3.1 准备工作 2
1.3.2 实现方式 3
1.3.3 工作方式 3
1.3.4 延伸阅读 3
1.4 创建一个项目文件结构 4
1.4.1 准备工作 4
1.4.2 实现方式 4
1.4.3 工作方式 6
1.4.4 更多内容 7
1.4.5 延伸阅读 7
1.5 利用pip处理项目依赖项 8
1.5.1 准备工作 8
1.5.2 实现方式 8
1.5.3 工作方式 9
1.5.4 更多内容 10
1.5.5 延伸阅读 10
1.6 针对开发、测试、预发布和产品环境,配置设置项 10
1.6.1 准备工作 10
1.6.2 实现方式 11
1.6.3 工作方式 12
1.6.4 延伸阅读 12
1.7 在设置项中定义相对路径 12
1.7.1 准备工作 13
1.7.2 实现方式 13
1.7.3 工作方式 13
1.7.4 延伸阅读 14
1.8 处理敏感设置项 14
1.8.1 准备工作 14
1.8.2 实现方式 14
1.8.3 工作方式 15
1.8.4 更多内容 15
1.8.5 延伸阅读 16
1.9 在项目中包含外部依赖项 16
1.9.1 准备工作 17
1.9.2 实现方式 17
1.9.3 工作方式 18
1.9.4 延伸阅读 18
1.10 以动态方式设置STATIC_URL 19
1.10.1 准备工作 19
1.10.2 实现方式 19
1.10.3 工作方式 20
1.10.4 更多内容 20
1.10.5 延伸阅读 22
1.11 将UTF-8设置为MySQL配置的默认编码机制 22
1.11.1 准备工作 22
1.11.2 实现方式 22
1.11.3 工作方式 23
1.11.4 更多内容 23
1.11.5 延伸阅读 23
1.12 创建Git忽略文件 23
1.12.1 准备工作 23
1.12.2 实现方式 23
1.12.3 工作方式 25
1.12.4 延伸阅读 25
1.13 删除Python编译文件 25
1.13.1 准备工作 25
1.13.2 实现方式 26
1.13.3 工作方式 26
1.13.4 更多内容 26
1.13.5 延伸阅读 26
1.14 遵循Python文件中的导入顺序 26
1.14.1 准备工作 26
1.14.2 实现方式 27
1.14.3 工作方式 27
1.14.4 更多内容 27
1.14.5 延伸阅读 28
1.15 创建应用程序配置 28
1.15.1 准备工作 28
1.15.2 实现方式 28
1.15.3 工作方式 29
1.15.4 更多内容 30
1.15.5 延伸阅读 30
1.16 定义可覆写的应用程序设置项 30
1.16.1 准备工作 31
1.16.2 实现方式 31
1.16.3 工作方式 33
1.16.4 延伸阅读 33
1.17 针对Django、Gunicorn、Nginx和PostgreSQL,与Docker容器协同工作 33
1.17.1 准备工作 34
1.17.2 实现方式 34
1.17.3 工作方式 38
1.17.4 更多内容 41
1.17.5 延伸阅读 41
第2章 模型和数据库结构 43
2.1 简介 43
2.2 技术需求 43
2.3 使用模型混入 44
2.3.1 准备工作 44
2.3.2 实现方式 44
2.3.3 工作方式 45
2.3.4 更多内容 45
2.3.5 延伸阅读 46
2.4 利用与URL相关的方法创建一个模型混入 46
2.4.1 准备工作 47
2.4.2 实现方式 47
2.4.3 工作方式 48
2.4.4 延伸阅读 49
2.5 创建一个模型混入以处理日期的创建和修改 50
2.5.1 准备工作 50
2.5.2 实现方式 50
2.5.3 工作方式 51
2.5.4 延伸阅读 51
2.6 创建一个模型混入以关注元标签 51
2.6.1 准备工作 52
2.6.2 实现方式 52
2.6.3 工作方式 54
2.6.4 延伸阅读 54
2.7 创建一个模型混入以处理Generic Relation 54
2.7.1 准备工作 55
2.7.2 实现方式 55
2.7.3 工作方式 58
2.7.4 延伸阅读 59
2.8 处理多语言字段 59
2.8.1 准备工作 59
2.8.2 实现方式 60
2.8.3 工作方式 64
2.8.4 延伸阅读 65
2.9 与模型翻译表协同工作 65
2.9.1 准备工作 66
2.9.2 实现方式 66
2.9.3 工作方式 69
2.9.4 延伸阅读 70
2.10 避免环状依赖项 71
2.10.1 准备工作 71
2.10.2 实现方式 71
2.10.3 延伸阅读 73
2.11 添加数据库约束 73
2.11.1 准备工作 73
2.11.2 实现方式 73
2.11.3 工作方式 74
2.11.4 更多内容 75
2.11.5 延伸阅读 76
2.12 使用迁移 76
2.12.1 准备工作 77
2.12.2 实现方式 77
2.12.3 工作方式 78
2.12.4 更多内容 78
2.12.5 延伸阅读 79
2.13 将外键修改为多对多字段 79
2.13.1 准备工作 79
2.13.2 实现方式 81
2.13.3 工作方式 83
2.13.4 更多内容 84
2.13.5 延伸阅读 84
第3章 表单和视图 85
3.1 简介 85
3.2 技术需求 85
3.3 利用CRUDL函数创建一个应用程序 86
3.3.1 准备工作 86
3.3.2 实现方式 89
3.3.3 工作方式 92
3.3.4 更多内容 92
3.3.5 延伸阅读 93
3.4 保存模型实例的作者 93
3.4.1 准备工作 93
3.4.2 实现方式 93
3.4.3 工作方式 94
3.4.4 延伸阅读 95
3.5 上传图像 95
3.5.1 准备工作 95
3.5.2 实现方式 95
3.5.3 工作方式 98
3.5.4 延伸阅读 99
3.6 利用自定义模板创建一个表单布局 99
3.6.1 准备工作 99
3.6.2 实现方式 100
3.6.3 工作方式 103
3.6.4 延伸阅读 105
3.7 利用django-crispy-forms创建一个表单布局 105
3.7.1 准备工作 105
3.7.2 实现方式 106
3.7.3 工作方式 108
3.7.4 更多内容 109
3.7.5 延伸阅读 110
3.8 与表单集协同工作 110
3.8.1 准备工作 110
3.8.2 实现方式 110
3.8.3 工作方式 118
3.8.4 更多内容 120
3.8.5 延伸阅读 120
3.9 过滤对象列表 121
3.9.1 准备工作 121
3.9.2 实现方式 122
3.9.3 工作方式 127
3.9.4 延伸阅读 127
3.10 管理分页列表 128
3.10.1 准备工作 128
3.10.2 实现方式 128
3.10.3 工作方式 131
3.10.4 延伸阅读 132
3.11 合成基于类的视图 132
3.11.1 准备工作 132
3.11.2 实现方式 132
3.11.3 工作方式 134
3.11.4 更多内容 135
3.11.5 延伸阅读 135
3.12 提供Open Graph和Twitter Card数据 135
3.12.1 准备工作 135
3.12.2 实现方式 135
3.12.3 工作方式 138
3.12.4 延伸阅读 138
3.13 提供schema.org词汇表 139
3.13.1 准备工作 139
3.13.2 实现方式 139
3.13.3 工作方式 141
3.13.4 延伸阅读 141
3.14 生成PDF文档 142
3.14.1 准备工作 142
3.14.2 实现方式 142
3.14.3 工作方式 146
3.14.4 延伸阅读 147
3.15 利用Haystack和Whoosh实现多语言搜索 147
3.15.1 准备工作 147
3.15.2 实现方式 148
3.15.3 工作方式 153
3.15.4 延伸阅读 154
3.16 利用Elasticsearch DSL实现多语言搜索 154
3.16.1 准备工作 154
3.16.2 实现方式 154
3.16.3 工作方式 162
3.16.4 延伸阅读 163
第4章 模板和JavaScript 165
4.1 简介 165
4.2 技术需求 165
4.3 安排base.html模板 166
4.3.1 准备工作 166
4.3.2 实现方式 166
4.3.3 工作方式 168
4.3.4 延伸阅读 169
4.4 使用Django Sekizai 170
4.4.1 准备工作 170
4.4.2 实现方式 171
4.4.3 工作方式 172
4.4.4 延伸阅读 172
4.5 公开JavaScript中的设置项 172
4.5.1 准备工作 172
4.5.2 实现方式 173
4.5.3 工作方式 175
4.5.4 延伸阅读 176
4.6 使用HTML 5数据属性 176
4.6.1 准备工作 176
4.6.2 实现方式 179
4.6.3 工作方式 185
4.6.4 延伸阅读 187
4.7 提供响应式图像 187
4.7.1 准备工作 187
4.7.2 实现方式 187
4.7.3 工作方式 190
4.7.4 更多内容 192
4.7.5 延伸阅读 192
4.8 实现连续的滚动 192
4.8.1 准备工作 192
4.8.2 实现方式 193
4.8.3 工作方式 197
4.8.4 更多内容 199
4.8.5 延伸阅读 199
4.9 在模式对话框中打开对象的细节信息 199
4.9.1 准备工作 200
4.9.2 实现方式 200
4.9.3 工作方式 203
4.9.4 延伸阅读 204
4.10 实现Like微件 204
4.10.1 准备工作 205
4.10.2 实现方式 206
4.10.3 工作方式 210
4.10.4 延伸阅读 212
4.11 通过Ajax上传图像 212
4.11.1 准备工作 212
4.11.2 实现方式 212
4.11.3 工作方式 221
4.11.4 更多内容 223
4.11.5 延伸阅读 223