玩转Django 2.0
上QQ阅读APP看书,第一时间看更新

1.5 Django 2.0的新特性

2017年12月2日,Django官方发布了2.0版本,成为多年来第一次大版本提升。其中最主要的特性是Django 2.0支持Python 3.4、3.5和3.6,不再支持Python 2,而Django 1.11是支持Python 2.7的最后版本。此外,新版本还有以下显著的新特性。

• 简化URL路由语法:使得Django.urls.path()方法的语法更简单。功能的导入由模块Django.urls实现,如from Django.urls import include, path, re_path。

• admin管理系统:支持主流的移动设备并新增属性ModelAdmin.autocomplete_fields和方法ModelAdmin.get_autocomplete_fields()。

• 用户认证:PBKDF2密码哈希默认的迭代次数从36 000增加到100 000。

• Cache(缓存):cache.set_many()现在返回一个列表,包含了插入失败的键值。

• 通用视图:ContextMixin.extra_context属性允许在View.as_view()中添加上下文。

• Pagination(分页):增加Paginator.get_page(),可以处理各种非法页面参数,防止异常。

• Templates(模板):提高Engine.get_default()在第三方模块的用途。

• Validators(验证器):不允许CharField及其子类的表单输入为空。

• File Storage(文件存储):File.open()可以用于上下文管理器,例如with file.open() as f。

• 连接MySQL不再使用mysqldb模块,改用为mysqlclient,两者之间并没有太大的使用差异。

• Management Commands(管理命令):inspectdb将MySQL的无符号整数视作PositiveIntegerField或者PositiveSmallIntegerField字段类型。