2020 年 Python3 的最后一次大的更新 3.8.1 已经于 12 月 18 日发布,为了迎接这次更新, Lyanna 也迎来了新的 3.0 版本。接下来详细的介绍一下本次更新重点

使用 Python3.8 用法

由于使用最新的 Python 3.8 语法海象运算符 (Assignment Expressions) 重构了代码,所以不再支持 Python 3.8 之前的版本。

使用 Mypy

我过去一直拒绝在动态语言代码中声明参数和返回值的类型,我认为一个合格的 Python 工程师不会在这里踩坑,基于我的编程习惯和对业务的了解,过去这些年几乎没有在类型检查这上面引起过什么线上代码错误。不过由于身边 Python 开发者质量的下降,已经越来越意识到类型检查的重要性。

Mypy 是官方的静态类型检查工具,lyanna 从 3.0 开始引入 Mypy,并且已经尽力的覆盖了全部代码。Mypy 有空可以专门聊聊

动态

「动态」是本次最大的一个特性。很多同学应该刷过豆瓣广播、推特甚至知乎想法,动态就是类似的一个功能。其实我想做它已经很久了,这是因为在豆瓣、知乎和推特发自己的动态是一种社交行为,潜意识里面是希望别人看到并且和你互动,而我对社交的意愿非常低。那么在自己的博客搞一个「动态」有以下好处:

  • 作为产品经理,可以搞成我认为最好的效果
  • 数据保存在自己的服务器上,自己可以完全掌控
  • 支持 Markdown 和代码高亮,更利于发技术相关的动态 (如代码片段),而社交网站是娱乐的,写代码就有点无趣了。
  • 有时候我只是想随便说说,没有分享到社交平台的价值甚至只想自己看到,其他同学如果不是主动就不必刷到了

先想到这么多,大家感受下:

这个效果很像豆瓣对吧?哈哈当年的 PM 和设计师太厉害了,不过我这里使用了 Vue 实现 (豆瓣是用的 jQuery),而且支持上传视频。这次没有后台,如果作为管理员登录会自动在动态页面显示发动态的表单框,目前可以发纯文本 / Markdown 内容、照片、视频和链接。

使用 YAML 格式的配置文件

之前使用了local_settings.py自定义配置,在 v2.7 时,右侧边栏部分改用了 config.yaml,而现在完全使用 YAML 格式的配置文件了。改用 YAML 主要是由于它的表现力更强。

回复评论

应公众号读者意见,可以直接对评论评论啦:

3.0 不兼容问题

在 v3.0 添加了动态功能,如果之前你已经使用的版本 > 2.7,可以通过如下命令完成迁移:

python manage.py migrate-for-v30

更低版本可以看项目文档的迁移说明

后记

介绍就到这里了。欢迎拉最新代码体验,也可以到本博客的 动态 里真实体验,看看我的动态..