站点内容更新(2017年11月22日)
虽然年底公司的项目比较紧张,没有太多时间来更新网站和博客,但后台的修改一直在持续进行中。最近几天又对网站进行了一次较大的修改,主要更新内容说明如下。
基础框架
本次修改在技术上最大的调整是 Web 框架从 Django 1.11 升级到了 Django 2.0-rc1。这个版本还没有正式发布,但已经比较稳定了,Beta 和 RC 版的放出都非常准时,按照官方说明,应该在不远的将来就会有正式版。新的版本不再兼容 Python 2.x————顺便说一下,最近 NumPy 等老牌类库也放出了终止 Python 2.x 支持的消息,可见整个业界在全面转向 3.x,这对绝大多数 Python 开发者来说应该都是好消息。 代码方面并没有多少特别大的改动,最明显的修改应该是在 URL 路由方面。我们知道 1.x 系列中声明 URL 大致是类似如下的正则表达式语法:
from django.conf.urls import url
...
url(r'^page/(?P<page>\d{1,6})/$', views.IndexView.as_view(), name='index_page')
2.x 系列引入了新的语法 path,参数语法有所简化,并且带有类型校验功能。举例如下:
from django.urls import path
...
path('page/<int:page>/', views.IndexView.as_view(), name='index_page'),
比较之下,会发现声明语法确实比从前更加简洁和易读了,但同时在某些方面功能也有所减弱(例如,无法像正则表达式那样限制整数类型的位数)。url 语法是继续保留的,如果不喜欢新的 path 语法的话,也可以沿用从前的语法不变。但官方推荐的方法是使用 path。
值得一提的是,我最初编写代码的时由于疏忽,编写的 URL 格式没有完全转换过来,Django 在运行时发现了问题并提出警告:
说明 Django 作者在编写的时候确实非常注重细节,让我小小的感动了一把。
其他需要修改的地方包括:现在在模型中声明外键(ForeignKey)时必须指明 on_delete 选项。除此之外,从前的代码基本上不需要修改。
主站
在功能方面,主站没有进行大的修改,只是增加了一个站点新闻列表,另外添加了电子书分区。但是页面设计方面放弃了曾经使用的漂亮但繁复的风格,重新设计成简单清爽的样式(参考了 Github 的页面)。我希望能找到最适合自己的设计风格,但到目前为止仍然在不断尝试中,因此不排除未来页面版式还会出现大变样。
博客
博客最主要的变动是开放了评论。我对增加评论功能一直是犹豫的,因为最初用 Wordpress 搭建博客时就发现的留下的大多是爬虫信息和各种广告。这次开放了评论,但设置成提交后需要通过审核才会显示。暂时观察一段时间以观后效吧。
此外在外观上也稍有修改。博客一直使用的是 Hexo 默认的主题,我对这个主题总体是很满意的,但在部分细节上也希望有所优化。博客并不需要特别漂亮的界面,因此对我来说这项任务的优先级算是比较低的,有时间的话再慢慢打磨吧。
短地址
我曾经在网站上提供过一个短地址功能,后来发现除了极个别任务之外,短地址似乎并没有太大意义,所以改版以后就去掉了。也不排除未来会重新开放这个功能,目前暂时不会考虑。
开发工具箱
这部分主要是为自己日常开发工作提供一些方便,同样优先级也不高,本次改版没有添加什么功能。后续会逐渐增加一些常用工具进去。
电子书
这是本次新增的主要内容,主要希望为网上免费的电子书提供一个集中的索引,方便自己和他人查询。目前主要收录了 Syncfusion 的 Succinctly 系列,因为从其他网站的反馈看还是有不少人对此有兴趣的。后续计划把其他渠道的免费电子书也陆续收录进来。感兴趣的朋友可以关注一下。
说明:本网站只收录来自网络的免费电子书,但不会收录盗版书籍,也不准备提供下载(至少目前没有这样的打算)。
后台
网站后台部分有不少局部调整。以前曾经做过一些统计分析的功能,但现在大部分交给自己架设的 Piwik 去处理,从前写的一些功能现在已经不再需要了,这部分还在持续重构。当然,从前台页面是不太看得出来的。
从后台统计数据来看,本网站目前访问量还是小的可怜,每天大部分流量来自各种网络爬虫。有闲功夫的时候,浏览后台统计数据,观察各种爬虫的踪迹和活动规律,也是一件蛮有意思的事情。虽然知道了也可能没有什么卵用,但如果没有自己的网站,我大概不会知道世界上还有这样一些爬虫,也无法详细了解这些爬虫的工作规律到底是什么样的。我当然希望自己的网站能够有很大的流量,但目前看起来这还是一种奢望,我也并不打算投入太多时间去做SEO和推广的工作。如果你是一个人类用户并且读到了这里,那么我要感谢你对本网站的关注,并且希望本站能够对你有所帮助吧。