"精通Django,Django1.8LTS全解,Nigel George著,安道译"
本文档是Nigel George所著《精通Django》中的一部分,主要讲解了Django框架中关于会话管理和保存的一些核心概念。Django是一个用Python编写的Web框架,它提供了一种高效的方式来构建Web应用,包括会话管理,视图,URL配置,模板系统,模型,管理后台以及表单处理等。
在Django中,会话是用于跟踪用户状态的一种机制。默认情况下,只有当会话字典中的值有增删(例如通过`request.session['foo'] = 'bar'`,`del request.session['foo']`或`request.session['foo'] = {}`这样的操作)时,会话才会被保存到会话数据库中。然而,修改字典内某个键的值(如`request.session['foo']['bar'] = 'baz'`)并不算会话的修改,除非显式设置`request.session.modified = True`。如果希望在每次请求时都保存会话,可以通过设置`SESSION_SAVE_EVERY_REQUEST`为`True`来实现。这样做会使得每个请求都保存会话,并且每次都会发送会话cookie,更新其过期时间。但要注意,如果响应的状态码是500(服务器错误),则不会保存会话。
除了会话管理,文档还提到了Django的一些其他关键功能:
1. **视图和URL配置**:视图是处理请求并返回响应的函数,而URL配置则定义了URL结构如何映射到这些视图。Django提倡松耦合的URL设计,使得URL与视图之间的关系更加灵活。
2. **模板系统**:Django使用模板语言来生成动态HTML,允许开发者分离业务逻辑和呈现逻辑。模板系统包含基本的标签和过滤器,支持模板继承和子目录,以及如何在视图中使用模板。
3. **模型**:模型是数据库中的数据结构的Python表示,用来定义数据字段和行为。通过模型,开发者可以进行数据库查询并处理数据。
4. **管理后台**:Django提供了内置的管理后台,可以方便地对模型数据进行CRUD(创建、读取、更新、删除)操作,还可以自定义管理界面以适应特定需求。
5. **表单**:Django的表单处理机制允许开发者创建和验证用户输入,提供了一套完整的验证规则和定制表单外观的方法。
这本书的每一章节深入讲解了Django的各个核心组件,从安装和基础概念,到进阶特性和最佳实践,是学习和理解Django的宝贵资源。