logo资料库

精通django.pdf

第1页 / 共439页
第2页 / 共439页
第3页 / 共439页
第4页 / 共439页
第5页 / 共439页
第6页 / 共439页
第7页 / 共439页
第8页 / 共439页
资料共439页,剩余部分请下载后查看
目录
导言
为什么要关注 Django?
关于本书
如何阅读本书
所需的编程知识
所需的 Python 知识
所需的 Django 版本
寻求帮助
Django 简介
介绍 Django
Django 的历史
第 1 章 新手入门
1.1 安装 Django
1.2 安装 Python
1.2.1 Python 版本
1.2.2 安装过程
1.3 安装 Python 虚拟环境
1.4 安装 Django
1.5 安装数据库
1.6 新建项目
1.6.1 Django 的设置
1.6.2 开发服务器
1.7 模型-视图-控制器设计模式
1.8 接下来
第 2 章 视图和 URL 配置
2.1 第一个 Django 驱动的页面:Hello World
2.1.1 第一个视图
2.1.2 第一个 URL 配置
2.1.3 正则表达式
2.1.4 关于 404 错误的简要说明
2.1.5 关于网站根地址的简要说明
2.1.6 Django 处理请求的过程
2.2 第二个视图:动态内容
2.3 URL 配置和松耦合
2.4 第三个视图:动态 URL
2.5 Django 精美的错误页面
2.6 接下来
第 3 章 Django 模板
3.1 模板系统基础
3.2 使用模板系统
3.2.1 创建 Template 对象
3.2.2 渲染模板
3.3 字典和上下文
3.3.1 多个上下文,同一个模板
3.3.2 上下文变量查找
3.3.3 方法调用的行为
3.3.4 如何处理无效变量
3.4 基本的模板标签和过滤器
3.4.1 标签
if/else
for
ifequal/ifnotequal
注释
3.4.2 过滤器
3.5 理念和局限
3.6 在视图中使用模板
3.7 模板加载机制
3.7.1 模板目录
3.8 render()
3.9 模板子目录
3.10 include 模板标签
3.11 模板继承
3.12 接下来
第 4 章 Django 模型
4.1 在视图中执行数据库查询的“愚蠢”方式
4.2 配置数据库
4.3 第一个应用
4.4 使用 Python 定义模型
4.4.1 第一个模型
4.4.2 安装模型
4.5 基本的数据访问
4.5.1 添加模型的字符串表示形式
4.5.2 插入和更新数据
4.5.3 选择对象
4.5.4 过滤数据
4.5.5 检索单个对象
4.5.6 排序数据
4.5.7 链式查找
4.5.8 切片数据
4.5.9 在一个语句中更新多个对象
4.5.10 删除对象
4.6 接下来
第 5 章 Django 管理后台
5.1 使用 Django 管理后台
5.1.1 启动开发服务器
5.1.2 进入管理后台
5.2 把模型添加到 Django 管理后台中
5.3 把字段设为可选的
5.3.1 把日期和数值字段设为可选的
5.4 自定义字段的标注
5.5 自定义 ModelAdmin 类
5.5.1 自定义修改列表
5.5.2 自定义编辑表单
5.6 用户、分组和权限
5.7 何时以及为何使用管理界面
5.8 接下来
第 6 章 Django 表单
6.1 从请求对象中获取数据
6.1.1 关于 URL 的信息
6.1.2 关于请求的其他信息
6.1.3 关于提交数据的信息
6.2 一个简单的表单处理示例
6.2.1 查询字符串参数
6.3 改进这个简单的表单处理示例
6.4 简单的验证
6.5 创建一个联系表单
6.5.1 第一个表单类
6.6 在视图中使用表单对象
6.7 改变字段的渲染方式
6.8 设定最大长度
6.9 设定初始值
6.10 自定义验证规则
6.11 指定标注
6.12 自定义表单的外观
6.13 接下来
第 7 章 高级视图和 URL 配置
7.1 URL 配置小技巧
7.1.1 简化导入函数的方式
7.1.2 在调试模式下提供特殊的 URL
7.1.3 具名分组
匹配/分组算法
7.1.4 URL 配置搜索的范围
7.1.5 捕获的参数始终是字符串
7.1.6 为视图的参数指定默认值
7.2 性能
7.3 错误处理
7.4 引入其他 URL 配置
7.4.1 捕获的参数
7.5 给视图函数传递额外参数
7.5.1 给 include() 传递额外参数
7.6 反向解析 URL
7.6.1 示例
7.7 为 URL 模式命名
7.8 URL 命名空间
7.8.1 反转命名空间中的 URL
7.8.2 URL 命名空间和引入的 URL 配置
7.9 接下来
第 8 章 高级模板技术
8.1 模板语言回顾
8.2 RequestContext 和上下文处理器
8.2.1 auth
8.2.2 debug
8.2.3 i18n
8.2.4 media
8.2.5 static
8.2.6 csrf
8.2.7 request
8.2.8 messages
8.3 自定义上下文处理器的指导方针
8.4 自动转义 HTML
8.4.1 如何禁用
在单个变量中禁用
在模板中的块里禁用
8.4.2 自动转义过滤器参数中的字符串字面量
8.5 模板加载内部机制
8.5.1 DIRS 选项
8.5.2 加载器的类型
文件系统加载器
应用目录加载器
其他加载器
8.6 扩展模板系统
8.6.1 代码布局
8.6.2 创建模板库
8.7 自定义模板标签和过滤器
8.7.1 自定义模板过滤器
注册自定义的过滤器
期待字符串的模板过滤器
过滤器和自动转义
过滤器和时区
8.7.2 自定义模板标签
简单的标签
引入标签
赋值标签
8.8 自定义模板标签的高级方式
8.8.1 概览
8.8.2 编写编译函数
8.8.3 编写渲染器
8.8.4 自动转义方面的注意事项
8.8.5 线程安全方面的注意事项
8.8.6 注册标签
8.8.7 把模板变量传给标签
8.8.8 在上下文中设定变量
上下文中的变量作用域
8.8.9 一直解析到另一个块标签
8.8.10 一直解析到另一个块标签,并且保存内容
8.9 接下来
第 9 章 Django 模型的高级用法
9.1 相关的对象
9.1.1 访问外键值
9.1.2 访问多对多值
9.2 管理器
9.2.1 添加额外的管理器方法
9.2.2 修改管理器返回的查询集合
9.3 模型方法
9.3.1 覆盖预定义的模型方法
9.4 执行原始 SQL
9.5 执行原始查询
9.5.1 模型对应的表名
9.5.2 把查询中的字段映射到模型字段上
9.5.3 索引查找
9.5.4 延期模型字段
9.5.5 添加注解
9.5.6 为 raw() 传递参数
9.6 直接执行自定义的 SQL
9.6.1 连接和游标
9.6.2 添加额外的管理器方法
9.7 接下来
第 10 章 通用视图
10.1 对象的通用视图
10.2 提供“友好的”模板上下文
10.3 提供额外的上下文变量
10.4 显示对象子集
10.5 动态过滤
10.6 接下来
第 11 章 在 Django 中验证用户的身份
11.1 概览
11.2 使用 Django 的身份验证系统
11.3 User 对象
11.3.1 创建超级用户
11.3.2 创建用户
11.3.3 修改密码
11.4 权限和权限核准
11.4.1 默认权限
11.4.2 分组
11.4.3 通过编程方式创建权限
11.4.4 权限缓存
11.5 在 Web 请求中验证身份
11.5.1 如何登录用户
11.5.2 如何退出用户
11.5.3 限制已登录用户的访问
直接方式
login_required 装饰器
根据测试条件限制访问
permission_required 装饰器
修改密码后作废会话
11.6 身份验证视图
11.6.1 login 视图
11.6.2 logout 视图
11.6.3 logout_then_login 视图
11.6.4 password_change 视图
11.6.5 password_change_done 视图
11.6.6 password_reset 视图
11.6.7 password_reset_done 视图
11.6.8 password_reset_confirm 视图
11.6.9 password_reset_complete 视图
11.6.10 redirect_to_login 辅助函数
11.6.11 内置的表单
11.7 模板中的身份验证数据
11.7.1 用户
11.7.2 权限
11.8 在管理后台中管理用户
11.8.1 创建用户
11.8.2 修改密码
11.9 密码管理
11.9.1 Django 如何存储密码
11.9.2 让 Django 使用 bcrypt
BCryptPasswordHasher 会截断密码
11.9.3 其他 bcrypt 实现
11.9.4 增加工作系数
11.9.5 密码升级
11.9.6 手动管理用户的密码
11.10 自定义身份验证
11.10.1 其他身份验证源
11.10.2 指定身份验证后端
11.10.3 编写一个身份验证后端
11.10.4 在自定义后端中核准权限
11.10.5 核准匿名用户的权限
11.10.6 核准未激活用户的权限
11.10.7 处理对象的权限
11.11 自定义权限
11.12 扩展现有的 User 模型
11.13 替换成自定义的 User 模型
11.14 接下来
第 12 章 测试 Django 应用程序
12.1 测试简介
12.2 自动化测试简介
12.2.1 自动化测试是什么
12.2.2 为什么测试
12.3 基本的测试策略
12.4 编写一个测试
12.4.1 编写测试
12.4.2 运行测试
12.5 测试工具
12.5.1 测试客户端
12.5.2 内置的测试用例类
SimpleTestCase
TransactionTestCase
TestCase
LiveServerTestCase
12.5.3 测试用例的功能
默认的测试客户端
加载固件
覆盖设置
断言
12.5.4 电子邮件服务
12.5.5 管理命令
12.5.6 跳过测试
12.6 测试数据库
12.7 使用其他测试框架
12.8 接下来
第 13 章 部署 Django 应用程序
13.1 为上线做好准备
13.1.1 部署点检表
13.2 关键设置
13.2.1 SECRET_KEY
13.2.2 DEBUG
13.3 各环境专用的设置
13.3.1 ALLOWED_HOSTS
13.3.2 缓存
13.3.3 数据库
13.3.4 EMAIL_BACKEND 和相关的设置
13.3.5 STATIC_ROOT 和 STATIC_URL
13.3.6 MEDIA_ROOT 和 MEDIA_URL
13.4 HTTPS
13.4.1 CSRF_COOKIE_SECURE
13.4.2 SESSION_COOKIE_SECURE
13.5 性能优化
13.5.1 CONN_MAX_AGE
13.5.2 TEMPLATES
13.6 错误报告
13.6.1 日志
13.6.2 ADMINS 和 MANAGERS
13.6.3 自定义默认的错误视图
13.7 使用虚拟环境
13.8 在生产环境中使用不同的设置
13.9 把 Django 应用程序部署到生产服务器
13.10 使用 Apache 和 mod_wsgi 部署 Django 应用程序
13.10.1 基本配置
13.10.2 使用 mod_wsgi 的守护进程模式
13.11 在生产环境中伺服文件
13.11.1 伺服管理后台的文件
13.11.2 如果遇到 UnicodeEncodeError 异常
13.12 在生产环境伺服静态文件
13.12.1 使用同一个服务器伺服网站和静态文件
13.12.2 使用专门的服务器伺服静态文件
13.12.3 使用云服务或 CDN 伺服静态文件
13.13 弹性伸缩
13.13.1 在单个服务器中运行
13.13.2 把数据库服务器独立出来
13.13.3 使用单独的服务器伺服媒体文件
13.13.4 实现负载均衡和冗余
13.13.5 发展壮大
13.14 性能调优
13.14.1 RAM 不嫌多
13.14.2 禁用 Keep-Alive
13.14.3 使用 memcached
13.14.4 经常使用 memcached
13.14.5 参与其中
13.15 接下来
第 14 章 生成非 HTML 内容
14.1 基础知识:视图和 MIME 类型
14.2 生成 CSV 文件
14.2.1 以流的形式发送大 CSV 文件
14.2.2 使用模板系统
14.3 其他基于文本的格式
14.4 生成 PDF 文件
14.4.1 安装 ReportLab
14.4.2 编写视图
14.4.3 复杂的 PDF 文件
14.4.4 其他资源
14.5 其他可能
14.6 订阅源框架
14.6.1 抽象框架
概述
订阅源类
一个简单的示例
一个复杂的示例
指定订阅源的类型
附件
语言
URL
同时提供 Atom 和 RSS 订阅源
14.6.2 低层 API
SyndicationFeed 类及其子类
自定义订阅源生成器
14.7 网站地图框架
14.7.1 安装
14.7.2 初始化
14.7.3 网站地图类
14.7.4 一个简单的示例
14.7.5 网站地图类 API
items
location
lastmod
changefreq
priority
protocol
i18n
14.7.6 快捷方式
示例
14.7.7 静态视图的网站地图
14.7.8 创建网站地图索引
14.7.9 自定义模板
14.7.10 上下文变量
索引
网站地图
14.7.11 通知 Google
django.contrib.syndication.ping_google()
使用 manage.py 通知 Google
14.8 接下来
第 15 章 Django 会话
15.1 启用会话
15.2 配置会话引擎
15.2.1 使用基于数据库的会话
15.2.2 使用基于缓存的会话
15.2.3 使用基于文件的会话
15.2.4 使用基于 cookie 的会话
15.3 在视图中使用会话
15.3.1 flush()
15.3.2 set_test_cookie()
15.3.3 test_cookie_worked()
15.3.4 delete_test_cookie()
15.3.5 set_expiry(value)
15.3.6 get_expiry_age()
15.3.7 get_expiry_date()
15.3.8 get_expire_at_browser_close()
15.3.9 clear_expired()
15.3.10 cycle_key()
15.4 会话对象指导方针
15.5 会话序列化
15.5.1 内置的序列化程序
serializers.JSONSerializer
serializers.PickleSerializer
15.5.2 自己编写序列化程序
15.6 设定测试 cookie
15.7 在视图之外使用会话
15.8 何时保存会话
15.9 持续到浏览器关闭的会话与持久会话
15.10 清理会话存储器
15.11 接下来
第 16 章 Django 的缓存框架
16.1 配置缓存
16.1.1 Memcached
16.1.2 数据库缓存
创建缓存表
多个数据库
16.1.3 文件系统缓存
16.1.4 本地内存缓存
16.1.5 虚拟缓存(供开发)
16.1.6 使用自定义的缓存后端
16.1.7 缓存的参数
16.2 整站缓存
16.3 视图层缓存
16.3.1 在 URL 配置中指定视图层缓存
16.4 模板片段缓存
16.5 低层缓存 API
16.5.1 访问缓存
16.5.2 基本用法
16.5.3 缓存键的前缀
16.5.4 缓存的版本
16.5.5 缓存键的组合方式
16.5.6 缓存键相关的警告
16.6 下游缓存
16.7 使用 Vary 首部
16.8 使用其他首部控制缓存
16.9 接下来
第 17 章 Django 中间件
17.1 激活中间件
17.2 钩子和应用中间件的顺序
17.3 自己动手编写中间件
17.3.1 process_request
17.3.2 process_view
17.3.3 process_template_response
17.3.4 process_response
处理流式响应
17.3.5 process_exception
17.3.6 __init__
把中间件标记为不使用
17.3.7 其他指导方针
17.4 可用的中间件
17.4.1 缓存中间件
17.4.2 常用中间件
17.4.3 GZip 中间件
17.4.4 条件 GET 请求中间件
17.4.5 区域设置中间件
17.4.6 消息中间件
17.4.7 安全中间件
HTTP 强制安全传输技术
X-Content-Type-Options: nosniff
X-XSS-Protection
SSL 重定向
17.4.8 会话中间件
17.4.9 网站中间件
17.4.10 身份验证中间件
17.4.11 CSRF 防护中间件
17.4.12 X-FRAME-OPTIONS 中间件
17.5 中间件的顺序
17.6 接下来
第 18 章 国际化
18.1 定义
18.1.1 国际化
18.1.2 本地化
18.2 翻译
18.3 国际化 Python 代码
18.3.1 标准的翻译函数
18.3.2 给翻译人员看的注释
18.3.3 把字符串标记为暂时无需翻译
18.3.4 复数变形
18.3.5 语境标记
18.3.6 惰性翻译
模型字段和关系
模型的详细名称
模型方法的 short_description 属性值
18.3.7 处理惰性翻译对象
惰性翻译和复数变形
连接字符串:string_concat()
在其他想延迟翻译的地方使用惰性翻译字符串
18.3.8 语言的本地化名称
18.4 国际化模板代码
18.4.1 trans 模板标签
18.4.2 blocktrans 模板标签
18.4.3 传给标签和过滤器的字符串字面量
18.4.4 模板中给翻译人员看的注释
18.4.5 在模板中切换语言
18.4.6 其他标签
18.5 国际化 JavaScript 代码
18.5.1 javascript_catalog 视图
18.5.2 使用 JavaScript 翻译目录
18.5.3 注意性能
18.6 国际化 URL 模式
18.6.1 在 URL 模式中添加语言前缀
18.6.2 翻译 URL 模式
18.6.3 在模板中反向解析
18.7 创建本地语言文件
18.7.1 消息文件
18.7.2 编译消息文件
18.7.3 为 JavaScript 源码创建消息文件
18.7.4 在 Windows 中安装 gettext
18.7.5 自定义 makemessages 命令
18.8 显式设定当前语言
18.9 在视图和模板之外使用翻译
18.10 实现方式说明
18.10.1 Django 翻译机制的特殊之处
18.10.2 Django 如何发现语言偏好设置
18.10.3 Django 如何发现翻译
18.11 接下来
第 19 章 安全保护
19.1 Django 内置的安全特性
19.1.1 跨站脚本防护
19.1.2 跨站请求伪造防护
用法
Ajax
其他模板引擎
装饰器方法
请求被拒
原理
缓存
测试
不足之处
边缘情况
19.1.3 CSRF 实用工具
django.views.decorators.csrf.csrf_exempt(view)
django.views.decorators.csrf.requires_csrf_token(view)
django.views.decorators.csrf.ensure_csrf_cookie(view)
扩展应用和可复用的应用
CSRF 设置
19.1.4 SQL 注入防护
19.1.5 点击劫持防护
点击劫持示例
避免点击劫持
用法
不足之处
支持 X-Frame-Options 的浏览器
19.1.6 SSL/HTTPS
HTTP Strict Transport Security
19.1.7 验证 Host 首部
19.1.8 会话安全性
19.1.9 用户上传的内容
19.2 其他安全建议
19.2.1 安全问题存档
19.2.2 加密签名
保护 SECRET_KEY
使用低层 API
使用 salt 参数
验证加了时间戳的值
保护复杂的数据结构
19.2.3 安全中间件
19.3 接下来
第 20 章 安装 Django 的其他方式
20.1 使用其他数据库
20.2 手动安装 Django
20.3 升级 Django
20.3.1 删除旧版 Django
20.4 安装针对特定发行版的包
20.5 安装开发版
20.6 接下来
第 21 章 数据库管理进阶
21.1 通用说明
21.1.1 持久连接
连接管理
注意事项
21.1.2 编码
21.2 PostgreSQL 说明
21.2.1 优化 PostgreSQL 的配置
21.2.2 隔离级别
21.2.3 索引 varchar 和 text 列
21.3 MySQL 说明
21.3.1 支持的版本
21.3.2 存储引擎
21.3.3 MySQL DB API 驱动
mySQLdb
mysqlclient
MySQL Connector/Python
21.3.4 时区定义
21.3.5 创建数据库
排序规则设置
21.3.6 连接数据库
21.3.7 创建数据表
21.3.8 表名
21.3.9 保存点
21.3.10 某些字段要注意的事项
字符字段
时间和日期时间字段对微秒的支持
时间戳列
使用 Queryset.select_for_update() 锁定行
自动转换类型可能导致意外结果
21.4 SQLite 说明
21.4.1 子串匹配和大小写
21.4.2 旧版 SQLite 和 CASE 表达式
21.4.3 使用 SQLite DB-API 2.0 驱动的较新版本
21.4.4 数据库锁定错误
21.4.5 不支持 QuerySet.select_for_update()
21.4.6 原始查询不支持 Python 那种指定参数的格式
21.4.7 connection.queries 中放在引号里的参数
21.5 Oracle 说明
21.5.1 连接数据库
21.5.2 threaded 选项
21.5.3 INSERT … RETURNING INTO
21.5.4 命名问题
21.5.5 NULL 和空字符串
21.5.6 对 TextField 的限制
21.6 使用第三方数据库后端
21.7 集成旧数据库
21.7.1 配置数据库参数
21.7.2 自动生成模型
21.7.3 安装 Django 的核心表
21.7.4 清理生成的模型
21.7.5 测试,微调
21.8 接下来
附录 A 模型定义参考指南
A.1 字段
A.1.1 对字段名称的限制
A.1.2 FileField 说明
FileField.upload_to
FileField.storage
FileField 和 FieldFile
A.2 通用字段选项
A.3 字段属性参考指南
A.3.1 字段的属性
Field.auto_created
Field.concrete
Field.hidden
Field.is_relation
Field.model
A.3.2 包含关系的字段的属性
Field.many_to_many
Field.many_to_one
Field.one_to_many
Field.one_to_one
Field.related_model
A.4 关系
A.4.1 ForeignKey
数据库表述
参数
A.4.2 ManyToManyField
数据库表述
参数
A.4.3 OneToOneField
parent_link
A.5 模型元数据选项
附录 B 数据库 API 参考指南
B.1 创建对象
B.2 保存对象的变动
B.2.1 保存 ForeignKey 和 ManyToManyField 字段
B.3 检索对象
B.3.1 检索全部对象
B.3.2 使用过滤器检索特定对象
串联过滤器
过滤后的 QuerySet 是独一无二的
QuerySet 是惰性的
B.3.3 使用 get() 方法检索单个对象
B.3.4 其他 QuerySet 方法
B.3.5 限制 QuerySet 的大小
B.3.6 按字段查找
B.3.7 跨关系查找
跨多值关系
B.3.8 过滤器可以引用模型中的字段
B.3.9 pk 简记法
B.3.10 转义 LIKE 语句中的百分号和下划线
B.3.11 查询集合缓存
查询集合何时不缓存
B.4 使用 Q 对象执行复杂的查找
B.5 比较对象
B.6 删除对象
B.7 复制模型实例
B.8 一次更新多个对象
B.9 关联的对象
B.9.1 一对多关系
正向
反向
使用自定义的反向管理器
处理关联对象的其他方法
B.9.2 多对多关系
B.9.3 一对一关系
B.9.4 通过关联的对象查询
B.10 回落到原始 SQL
附录 C 通用视图参考指南
C.1 通用视图的通用参数
C.2 简单的通用视图
C.2.1 渲染模板——TemplateView
C.2.2 重定向到其他 URL
参数
方法
C.3 列表/详情通用视图
C.3.1 列出对象
C.3.2 详情视图
C.4 基于日期的通用视图
C.4.1 ArchiveIndexView
C.4.2 YearArchiveView
C.4.3 MonthArchiveView
C.4.4 WeekArchiveView
C.4.5 DayArchiveView
C.4.6 TodayArchiveView
C.4.7 DateDetailView
C.5 在基于类的视图中处理表单
C.5.1 简单的表单
C.5.2 模型表单
C.5.3 模型和 request.user
C.5.4 Ajax 示例
附录 D Django 设置
D.1 设置文件是什么?
D.1.1 默认设置
D.1.2 查看改动的设置
D.2 在 Python 代码中使用设置
D.3 运行时调整设置
D.4 安全性
D.5 自己定义设置
D.6 DJANGO_SETTINGS_MODULE
D.6.1 django-admin 实用命令
D.6.2 在服务器中(mod_wsgi)
D.7 在不设置 DJANGO_SETTINGS_MODULE 的情况下使用设置
D.7.1 自定义默认设置
D.7.2 configure() 和 DJANGO_SETTINGS_MODULE 必选其一
D.8 可用设置
D.8.1 核心设置
D.8.2 身份验证设置
D.8.3 消息设置
D.8.4 会话设置
D.8.5 Django 网站设置
D.8.6 静态文件设置
附录 E 内置模板标签和过滤器
E.1 内置标签
E.1.1 autoescape
E.1.2 block
E.1.3 comment
E.1.4 csrf_token
E.1.5 cycle
E.1.6 debug
E.1.7 extends
E.1.8 filter
E.1.9 firstof
E.1.10 for
E.1.11 for … empty
E.1.12 if
布尔运算符
复杂的表达式
过滤器
E.1.13 ifchanged
E.1.14 ifequal
E.1.15 ifnotequal
E.1.16 include
E.1.17 load
E.1.18 lorem
E.1.19 now
E.1.20 regroup
E.1.21 spaceless
E.1.22 templatetag
E.1.23 url
E.1.24 verbatim
E.1.25 widthratio
E.1.26 with
E.2 内置过滤器
E.2.1 add
E.2.2 addslashes
E.2.3 capfirst
E.2.4 center
E.2.5 cut
E.2.6 date
E.2.7 default
E.2.8 default_if_none
E.2.9 dictsort
E.2.10 dictsortreversed
E.2.11 divisibleby
E.2.12 escape
E.2.13 escapejs
E.2.14 filesizeformat
E.2.15 first
E.2.16 floatformat
E.2.17 get_digit
E.2.18 iriencode
E.2.19 join
E.2.20 last
E.2.21 length
E.2.22 length_is
E.2.23 linebreaks
E.2.24 linebreaksbr
E.2.25 linenumbers
E.2.26 ljust
E.2.27 lower
E.2.28 make_list
E.2.29 phone2numeric
E.2.30 pluralize
E.2.31 pprint
E.2.32 random
E.2.33 rjust
E.2.34 safe
E.2.35 safeseq
E.2.36 slice
E.2.37 slugify
E.2.38 stringformat
E.2.39 striptags
E.2.40 time
E.2.41 timesince
E.2.42 timeuntil
E.2.43 title
E.2.44 truncatechars
E.2.45 truncatechars_html
E.2.46 truncatewords
E.2.47 truncatewords_html
E.2.48 unordered_list
E.2.49 upper
E.2.50 urlencode
E.2.51 urlize
E.2.52 urlizetrunc
E.2.53 wordcount
E.2.54 wordwrap
E.2.55 yesno
E.3 国际化标签和过滤器
E.3.1 i18n
E.3.2 l10n
E.3.3 tz
E.4 其他标签和过滤器库
E.4.1 static
E.4.2 get_static_prefix
E.4.3 get_media_prefix
附录 F 请求和响应对象
F.1 HttpRequest 对象
F.1.1 属性
HttpRequest.scheme
HttpRequest.body
HttpRequest.path
HttpRequest.path_info
HttpRequest.method
HttpRequest.encoding
HttpRequest.GET
HttpRequest.POST
HttpRequest.COOKIES
HttpRequest.FILES
HttpRequest.META
HttpRequest.user
HttpRequest.session
HttpRequest.urlconf
HttpRequest.resolver_match
F.1.2 方法
HttpRequest.get_host()
HttpRequest.get_full_path()
HttpRequest.build_absolute_uri(location)
HttpRequest.get_signed_cookie()
HttpRequest.is_secure()
HttpRequest.is_ajax()
HttpRequest.read(size=None)
HttpRequest.readline()
HttpRequest.readlines()
HttpRequest.xreadlines()
HttpRequest.iter()
F.2 QueryDict 对象
F.2.1 方法
QueryDict.__init__()
QueryDict.__getitem__(key)
QueryDict.__setitem__(key, value)
QueryDict.__contains__(key)
QueryDict.get(key, default)
QueryDict.setdefault(key, default)
QueryDict.update(other_dict)
QueryDict.items()
QueryDict.iteritems()
QueryDict.iterlists()
QueryDict.values()
QueryDict.itervalues()
QueryDict.copy()
QueryDict.getlist(key, default)
QueryDict.setlist(key, list)
QueryDict.appendlist(key, item)
QueryDict.setlistdefault(key, default_list)
QueryDict.lists()
QueryDict.pop(key)
QueryDict.popitem()
QueryDict.dict()
QueryDict.urlencode([safe])
F.3 HttpResponse 对象
F.3.1 用法
传入字符串
传入迭代器
设定首部字段
让浏览器把响应视作文件附件
F.3.2 属性
HttpResponse.content
HttpResponse.charset
HttpResponse.status_code
HttpResponse.reason_phrase
HttpResponse.streaming
HttpResponse.closed
F.3.3 方法
HttpResponse.__init()__
HttpResponse.__setitem__(header, value)
HttpResponse.__delitem__(header)
HttpResponse.__getitem__(header)
HttpResponse.has_header(header)
HttpResponse.setdefault(header, value)
HttpResponse.set_cookie()
HttpResponse.set_signed_cookie()
HttpResponse.delete_cookie()
HttpResponse.write(content)
HttpResponse.flush()
HttpResponse.tell()
HttpResponse.getvalue()
HttpResponse.writable()
HttpResponse.writelines(lines)
F.3.4 HttpResponse 的子类
HttpResponseRedirect
HttpResponsePermanentRedirect
HttpResponseNotModified
HttpResponseBadRequest
HttpResponseNotFound
HttpResponseForbidden
HttpResponseNotAllowed
HttpResponseGone
HttpResponseServerError
F.4 JsonResponse 对象
F.4.1 用法
序列化字典之外的对象
更换默认的 JSON 编码器
F.5 StreamingHttpResponse 对象
F.5.1 注意性能
F.5.2 属性
F.6 FileResponse 对象
F.7 错误视图
F.7.1 404(页面未找到)视图
F.7.2 500(服务器错误)视图
F.7.3 403(HTTP 禁止)视图
F.7.4 400(坏请求)视图
F.7.5 自定义错误视图
附录 G 使用 Visual Studio 做 Django 开发
G.1 安装 Visual Studio
G.1.1 安装 PTVS 和 Web Essentials
G.2 创建 Django 项目
G.2.1 新建一个 Django 项目
G.3 在 Visual Studio 中做 Django 开发
G.3.1 对 Django 管理命令的集成
G.3.2 简化 Python 包的安装
G.3.3 简化新 Django 应用的安装
精通 Django Django 1.8 LTS 全解 Nigel George 著 安道 译 rev 0.0.1, 2017-04-28T12:27:00+08:00
目录 致谢 关于作者 1.1 安装 Django 1.2 安装 Python 1.3 安装 Python 虚拟环境 1.4 安装 Django 1.5 安装数据库 1.6 新建项目 1.7 模型-视图-控制器设计模式 1.8 接下来 2.1 第一个 Django 驱动的页面:Hello World 2.2 第二个视图:动态内容 2.3 URL 配置和松耦合 2.4 第三个视图:动态 URL 2.5 Django 精美的错误页面 2.6 接下来 导言 Django 简介 第 1 章 新手入门............................................................................................................................................ 1 1 2 5 6 7 7 9 10 第 2 章 视图和 URL 配置 ............................................................................................................................. 11 11 17 18 18 21 23 第 3 章 Django 模板..................................................................................................................................... 25 25 26 28 33 39 41 42 44 45 45 46 3.1 模板系统基础 3.2 使用模板系统 3.3 字典和上下文 3.4 基本的模板标签和过滤器 3.5 理念和局限 3.6 在视图中使用模板 3.7 模板加载机制 3.8 render() 3.9 模板子目录 3.10 include 模板标签 3.11 模板继承 v
3.12 接下来 4.1 在视图中执行数据库查询的“愚蠢”方式 4.2 配置数据库 4.3 第一个应用 4.4 使用 Python 定义模型 4.5 基本的数据访问 4.6 接下来 5.1 使用 Django 管理后台 5.2 把模型添加到 Django 管理后台中 5.3 把字段设为可选的 5.4 自定义字段的标注 5.5 自定义 ModelAdmin 类 5.6 用户、分组和权限 5.7 何时以及为何使用管理界面 5.8 接下来 50 第 4 章 Django 模型..................................................................................................................................... 51 51 52 52 53 57 66 第 5 章 Django 管理后台 ............................................................................................................................. 67 67 71 72 74 74 81 82 82 第 6 章 Django 表单..................................................................................................................................... 83 83 85 88 89 91 93 95 95 95 96 96 97 98 第 7 章 高级视图和 URL 配置...................................................................................................................... 99 99 102 103 103 105 6.1 从请求对象中获取数据 6.2 一个简单的表单处理示例 6.3 改进这个简单的表单处理示例 6.4 简单的验证 6.5 创建一个联系表单 6.6 在视图中使用表单对象 6.7 改变字段的渲染方式 6.8 设定最大长度 6.9 设定初始值 6.10 自定义验证规则 6.11 指定标注 6.12 自定义表单的外观 6.13 接下来 7.1 URL 配置小技巧 7.2 性能 7.3 错误处理 7.4 引入其他 URL 配置 7.5 给视图函数传递额外参数 vi - 目录
7.6 反向解析 URL 7.7 为 URL 模式命名 7.8 URL 命名空间 7.9 接下来 9.1 相关的对象 9.2 管理器 9.3 模型方法 9.4 执行原始 SQL 9.5 执行原始查询 9.6 直接执行自定义的 SQL 9.7 接下来 10.1 对象的通用视图 10.2 提供“友好的”模板上下文 10.3 提供额外的上下文变量 10.4 显示对象子集 10.5 动态过滤 10.6 接下来 8.1 模板语言回顾 8.2 RequestContext 和上下文处理器 8.3 自定义上下文处理器的指导方针 8.4 自动转义 HTML 8.5 模板加载内部机制 8.6 扩展模板系统 8.7 自定义模板标签和过滤器 8.8 自定义模板标签的高级方式 8.9 接下来 106 107 108 109 第 8 章 高级模板技术................................................................................................................................. 111 111 111 115 116 118 120 121 128 135 第 9 章 Django 模型的高级用法................................................................................................................. 137 137 138 141 142 142 145 147 第 10 章 通用视图...................................................................................................................................... 149 149 151 151 152 153 154 第 11 章 在 Django 中验证用户的身份 ...................................................................................................... 155 155 155 156 157 158 162 168 11.1 概览 11.2 使用 Django 的身份验证系统 11.3 User 对象 11.4 权限和权限核准 11.5 在 Web 请求中验证身份 11.6 身份验证视图 11.7 模板中的身份验证数据 目录 - vii
11.8 在管理后台中管理用户 11.9 密码管理 11.10 自定义身份验证 11.11 自定义权限 11.12 扩展现有的 User 模型 11.13 替换成自定义的 User 模型 11.14 接下来 169 171 174 177 177 178 178 第 12 章 测试 Django 应用程序 ................................................................................................................. 179 179 179 180 180 182 190 190 190 第 13 章 部署 Django 应用程序 ................................................................................................................. 191 191 191 192 193 193 193 194 194 196 196 197 198 200 204 205 第 14 章 生成非 HTML 内容....................................................................................................................... 207 207 208 210 210 13.1 为上线做好准备 13.2 关键设置 13.3 各环境专用的设置 13.4 HTTPS 13.5 性能优化 13.6 错误报告 13.7 使用虚拟环境 13.8 在生产环境中使用不同的设置 13.9 把 Django 应用程序部署到生产服务器 13.10 使用 Apache 和 mod_wsgi 部署 Django 应用程序 13.11 在生产环境中伺服文件 13.12 在生产环境伺服静态文件 13.13 弹性伸缩 13.14 性能调优 13.15 接下来 12.1 测试简介 12.2 自动化测试简介 12.3 基本的测试策略 12.4 编写一个测试 12.5 测试工具 12.6 测试数据库 12.7 使用其他测试框架 12.8 接下来 14.1 基础知识:视图和 MIME 类型 14.2 生成 CSV 文件 14.3 其他基于文本的格式 14.4 生成 PDF 文件 viii - 目录
分享到:
收藏