2017年12月2日,Django官方发布了2.0版本,成为多年来第一次大版本提升,现在本人使用的是3.1.2版本。其中主要特性是 Django2.X支持 Python3.4以上的版本,不再支持Python2,而Django1.11是支持 Python2.7 的最后版本。此外,新版本还有以下显著的新特性。
- 简化URL路由语法:使得 Django.urls.path() 方法的语法更简单。功能的导入由模块Django.urls实现,如:from Django.urls import include,path, re_path。
- Admin后台系统:支持主流移动设备并新增属性 ModelAdmin.autocomplete_fields 和方法 ModelAdmin.get_autocomplete_fields()。
- 用户认证:PBKDF2 密码哈希默认的迭代次数从 36000 增加到 100000。
- Cache(缓存):cache.set_many() 现在返回一个列表,包含插入失败的键值。
- 视图类:ContextMixin.extra_context 属性允许在 View.as_view() 中添加上下文。
- Pagination(分页):增加 Paginator.get_default(),可以处理各种非法页面参数,防止异常。
- Templates(模板):提高 Engine.get_default() 在第三方模块的用途。
- Validators(验证器):不允许 CharField 及其子类的表单输入为空。
- File Storage(文件存储):File.open() 可以用于上下文管理器,例如 with file.open() as f。
- 连接 MySQL 不再使用 mysqldb 模块,改用为 mysqlclient,两者之间并没有太大的使用差异。
- Management Commands(管理命令):inspectdb 将 MySQL 的无符号整数视作 PositiveIntegerField 或者 PositiveSmallIntegerField 字段类型。
以上就是本人整理内容,如有不足还请见谅。