SHUHARI 的博客

流光飞舞

归档 2020 年 01 月

Qt LTS 将只对商业用户开放

2020-01-29
Qt
Qt

在公布新版(5.14.1)的同时,Qt 官方同时也释出了这样的信息:Qt LTS 及安装包将只对商业用户开放。具体内容可参考 Qt offering changes 2020,主要声明如下:

  • Installation of Qt binaries will require a Qt Account
  • Long-term-supported (LTS) releases and the offline installer will become available to commercial licensees only
  • New Qt offering for start-ups and small businesses for $499/year

2020 新版网站发布

2020-01-29

在 2020 年的第一个月将近结束的时候,本站今年的第一个新版发布了。

本次重写在架构上最大的变更,是网站的 Web 框架从 Django 换到了 Flask。以前我也说过,和 Flask 比起来,Django 才是对初学者更友好的框架;但是当你经验增多以后,Django 的部分特性(尤其是用户验证和 Admin)复杂且封闭、难于扩展的缺点就会凸显出来,这时候 Flask 就会成为一个更为灵活和开放的选择。然而我对 Flask 也不是完全满意,就像我在 上一篇文章 抱怨过的,Flask 自身在架构设计上也有一些问题,如果不小心规划的话,很容易造成强耦合与循环依赖的问题。好在了解内部机制以后,上述问题多少都是可以规避的。

Flask 问题:Blueprint 的 template_folder 设置不起作用

2020-01-07

按照规定,Flask 的模板默认放在 app 所属的 templates 子目录下,但也可以通过构造参数 template_folder (以及类似的 static_folder)来修改。同时,在 Blueprint 的构造方法中也包含同样的 template_folder/static_folder 参数。我从前并未真正修改过这些参数,按照一般的理论推测,既然 Blueprint 提供了这些参数,那么它应该覆盖 app 级别的配置才对。

这几天要写一个 Flask 程序,由于相关模块较多,都堆在一起找起来很麻烦,也容易产生无疑的耦合。因此我考虑采用另外一种代码布局,即把每个 Blueprint 和它所使用的模板一起存放,同时和其他模块分离开来。哪知道,修改以后才发现这样无法工作:不管怎么配置 App/Blueprint 的参数,所有 index.html 都会显示同一个页面。