个人博客实现Archives查询小记
2015-10-12 23:43
218 查看
这两天正在做博客,刚刚遇到一个问题,就是需要在主页实现文档分类功能,即通过日期将文章进行按日期进行分类。
比如这样的:
![](http://images2015.cnblogs.com/blog/693341/201510/693341-20151012233233179-290974031.png)
我个人的想法是,查询所有文章的日期,然后将日期进行格式化,只留下年份和月份,然后再进行去重!
具体是这样的一条SQL语句:
这句就是将选出来的文章时间,重新格式化成“Oct, 2015”这样的格式,并将这个结果命名别名为arch,然后再对arch进行去重!
可是我通过tornado执行以后,总是出错,在tornado中查询语句是这样的:
然后总是出现这样的错误:
![](http://images2015.cnblogs.com/blog/693341/201510/693341-20151012233718194-2093649012.png)
后来又看了一下query函数的声明,发现是这样的:
发现这个函数是可以传递参数的,然后我个人估计就是query函数将%Y和%b当成了格式化字符串,但是却没有找到对应的参数值,就好比C语言中这样的代码:
这样就会报错,说没有足够的参数。
那该怎么办呢,我的%Y和%b是date_format函数的格式化参数啊,很简单,只要把%转义一下就好了,将查询语句写成这样:
这样就不会报错了!
比如这样的:
![](http://images2015.cnblogs.com/blog/693341/201510/693341-20151012233233179-290974031.png)
我个人的想法是,查询所有文章的日期,然后将日期进行格式化,只留下年份和月份,然后再进行去重!
具体是这样的一条SQL语句:
SELECT DISTINCT date_format(mtime, "%b, %Y") as arch FROM passage ORDER BY mtime DESC ;
这句就是将选出来的文章时间,重新格式化成“Oct, 2015”这样的格式,并将这个结果命名别名为arch,然后再对arch进行去重!
可是我通过tornado执行以后,总是出错,在tornado中查询语句是这样的:
archives = self.db.query('SELECT DISTINCT date_format(mtime, "%b, %Y") as arch FROM passage ORDER BY mtime DESC')
然后总是出现这样的错误:
![](http://images2015.cnblogs.com/blog/693341/201510/693341-20151012233718194-2093649012.png)
后来又看了一下query函数的声明,发现是这样的:
def query(self, query, *parameters, **kwparameters): """Returns a row list for the given query and parameters."""
发现这个函数是可以传递参数的,然后我个人估计就是query函数将%Y和%b当成了格式化字符串,但是却没有找到对应的参数值,就好比C语言中这样的代码:
printf("%d %f");
这样就会报错,说没有足够的参数。
那该怎么办呢,我的%Y和%b是date_format函数的格式化参数啊,很简单,只要把%转义一下就好了,将查询语句写成这样:
archives = self.db.query('SELECT DISTINCT date_format(mtime, "%%b, %%Y") as arch FROM passage ORDER BY mtime DESC')
这样就不会报错了!
相关文章推荐
- Cocos2d-x 的3D开发功能介绍
- Swift中的问号?和感叹号!
- Dijkstra算法的java实现
- Filter的使用及处理特殊请求
- LeetCode:Delete Node in a Linked List
- 电信 光纤猫 贝尔E8-C-EPON 破解超级管理员密码 实现PPPoE自动拨号和无线路由功能
- SQL 查询中not in 与 not exists 的区别
- 工作流总结(三)JBPM 六个流程服务接口
- MySQL利用正则匹配函数实现多个条件查询
- MarkDown常用语言规则
- Android 从外部网页拉起跳转到App
- 温故知新: JavaScript知识点
- U盘安装centos 6
- 51nod 1276:岛屿的数量 很好玩的题目
- 51nod 1276:岛屿的数量 很好玩的题目
- Android 原点
- RSA算法原理(一)
- 将input中的光标移动到文字的末尾后,怎么用js显示光标当前的位置?
- Spring Data与MongoDB:不协调的设计
- 语不惊人死不休(161) 致良知