【Django】电子书 - 精通Django:Django 1.8 LTS全解-后端电子书论坛-IT电子书-IT面试吧

【Django】电子书 - 精通Django:Django 1.8 LTS全解

该帖子部分内容已隐藏
付费阅读
金币 3
此内容为付费阅读,请付费后查看

书籍封面

书籍目录

目录

导言

为什么要关注 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 应用的安装

下载地址

请登录后发表评论

    没有回复内容