论坛首页 编程语言技术论坛

Django 1.3更新内容翻译

浏览 3808 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-03-30   最后修改:2011-11-06
为什么JAVAEYE的编辑器我直接拷贝自己博客的内容过来老是格式断断续续的...

还是放下链接吧,大家可以去这里 查看原文

1.3版本发布包含少量新功能和大量的bugfix,对Python版本的最低要求提高至2.4,另外这将是最后一个支持2.4的Django版本了,请果断更新。

1.3带来了什么?

类视图 (Class-based views)
本次更新加入了一个新的框架来支持类视图,这将意味着更高的代码重用率和开发效率。新的Generic View基类在提供了易用性和扩展性的同时,还对原先的函数式generic view提供了完整的模拟支持。

扩展链接:
通用类视图
新旧Generic View迁移指南

日志 Logging
1.3加入了框架级别的对Python原生logging的支持,所以现在可以在Django项目中方便地配置和控制。Django内置了许多logging处理器,特别值得一提的就是之前500错误发送email的行为现在已经是一种logging行为了。

扩展链接:
Django的logging接口

增强的静态文件处理 Extended static files handling
1.3包含了一个新的app django.contrib.staticfiles 来帮助开发者管理渲染页面所需的如js、css这样的静态文件。
在之前,所有的静态文件都是用MEDIA_URL和MEDIA_ROOT来控制的。为了和用户上传的文件作区分,staticfiles横空出世,现在你可以将静态文件分配到app目录或任意你指定的目录,分发app时就更为方便了。

扩展链接:
staticfiles的文档

unittest2
Django 1.3从Python 2.7复制了一份unittest2来为低版本Python提供2.7中带来的那些关于unittest的重大功能更新。你只需要使用django.utils.unittest来调用这个库,Django会判断是使用已安装的unittest2还是Django的copy。

事务的上下文管理器 Transaction context managers
Python 2.5以上的用户可以使用新的事务的上下文管理器来处理视图中的事务,例如:
with transaction.autocommit():    # …

扩展链接:
事务管理

可控的级联删除 Configurable delete-cascade
ForeignKey和OneToOneField现在可以通过一个on_delete参数来控制删除时的行为。之前,所有的删除都是级联的,现在另外还支持设置空值、设置默认值、设置成任意值、阻止删除和无作为等操作。具体定义请参考 on_delete 的文档

待翻译字符串的上下文标示和注释 Contextual markers and comments for translatable strings
待翻译字符串现在可以通过pgettext来进行标示,另外,你也可以用特殊记号来给其加上注释。

扩展链接:
上下文标示
注释

增强内建模板标签 Improvements to built-in template tags
include 标签 引入with选项来为导入文件进行传参
include 标签 引入only开关来避免上下文干扰
with 标签 现在可以在一个with块中定义多个变量
load 标签 引入from选项来进行独立的标签或过滤器的导入
译者按: 这些改动很实用,另,从include上隐约看到了mako的影子……

TemplateResponse
有时让修饰器或中间件来修改响应是一件很有效的做法,但是在创建完HttpResponse后是很难进修修改的。为了克服这个限制,Django 1.3加入了一个新的TemplateResponse,它能够保留相关的模板和环境变量,只在需要时才生成最终响应。

扩展链接:
相关文档


有关缓存的变动
Django 1.3引入了一些对缓存框架的改进:

加入多缓存支持
缓存API中加入了版本控制、缓存前缀和键变幻函数
现在可以通过HTTP请求头来创建缓存键
缓存后台加入对pylibmc的支持
其他
还有许多小的改动,如:

MEDIA_URL和STATIC_URL必须以斜杠结尾
增加 RequestFactory 供测试用
可以给管理员发送富文本邮件,同时,错误邮件包含了更多debug模式下的页面信息和格式
simple_tag()加入一个takes_context参数,可以更方便的创建需要访问模板上下文的标签
提供一个默认包含RequestContext的render()快捷函数
增强 F()表达式
另离线文档已经更新,可到:

Google code 下载
115网盘 下载
   发表时间:2011-04-09  
最近一个项目试用了一下 Django 的ORM,体验一般。
如果你用它做跟“Hello World”差不多的事情,那的确非常方便。
但如果你想稍微做点别的出格的事情,那就对不住了。
碰到的问题有:
1、ORM不支持 BLOB ;
2、ORM不支持 批量修改数据 ;
问题虽然小,但是到处都是这种问题的话,就很影响使用心情。
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics