题图:by silviuz from Instagram
阅读文本大概需要 3 分钟。
一个备受关注、很多人都在使用的软件,软件开发团队会定期发布新版本。其主要目的是修复之前一些 Bug 以及新增一些新特性。Django 作为主流的 Python Web 开发框架,当然也不例外。在几天前,即 8 月 1 号,Django 官方团队发布 Django 2.1 版本。
新版本发布,我们可以不用急于更新替换,但要关注新版本的发布内容。我看了下官方的发布公告,总结几个重要的点。
1 Python 版本支持
Django 2.1 将不再支持 Python 3.4,最低要求 Python 版本是 3.5。这也意味着 Django 2.0 是最后一个支持 Python 3.4 的版本。
2 模型新增查看权限
这个功能,很多开发者都期待了很久。盼星星盼月亮,终于盼来了。
在以前的版本中,模型(Model)只有“增删改”权限。新版本增加查看(View)权限。这也意味着在 Model 的 Meta 配置选项中, default_permissions 属性默认值变为 ('add', 'change', 'delete', 'view')。
此外,官方团队考虑到向前兼容性。在旧版本中,如果用户取得修改(change)权限。更新到新版本,用户会自动获得查看(View)权限。
View 权限同样也适用于 admin,它可以给用户指定只读权限。这里是通过 ModelAdmin.has_view_permission(request, obj=None) 来设置。如果希望一个 obj 被设置成只读属性,那么要返回 True。
3 模型
新版本的 Model 类也一些特性,我也列举出比较重要的点。
- Model 模型类支持 init_subclass 重写
- 查询表达式终于支持负号查询了。
- 在模型的表单中,BinaryField 可以被设置为 editable=True。
4 表单
表单(Forms)中的 ImageField 组件新增 accept="image/*" 属性。
5 缓存
基于内存缓存(local-memory cache backend)采用最近最少使用(LRU)筛选策略,以替换之前随机数的策略。
6 数据库版本支持
- MySQL 数据库
- PostgreSQL 数据库
- SQLite 数据库
推荐阅读:
END
不积跬步,无以至千里
如果你觉得文章还不错,请大家点赞分享下。
你的肯定是我最大的鼓励和支持。