个人博客实现Archives查询小记
这两天正在做博客,刚刚遇到一个问题,就是需要在主页实现文档分类功能,即通过日期将文章进行按日期进行分类。
比如这样的:
我个人的想法是,查询所有文章的日期,然后将日期进行格式化,只留下年份和月份,然后再进行去重!
具体是这样的一条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')
然后总是出现这样的错误:
后来又看了一下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')
这样就不会报错了!
个人博客实现Archives查询小记的更多相关文章
- day43 数据库学习 转自egon 老师博客 单表查询和多表查询
一 单表查询的语法 SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 二 关键 ...
- tp3.2博客详情页面查询上一篇下一篇
- Django 搭建简易博客
新增一个 APP 博客算是一个功能集,因此我们应将其体现为一个模块.这表现在 Django 应用里则是为其创建一个 APP Package.现在让 manage.py 中的 startapp 闪亮登场 ...
- ruby开源项目之Octopress:像黑客一样写博客(zhuan)
ruby开源项目之Octopress:像黑客一样写博客 百度权重查询 词库网 网站监控 服务器监控 SEO监控 Swift编程语言教程 今年一直推荐的一种写作方式.markdown语法快速成文,git ...
- Java课程设计——博客作业教学数据分析系统(201521123084 林正晟)
#课程设计--博客作业教学数据分析系统(201521123084 林正晟) 1.团队课程设计博客链接 博客作业教学数据分析系统 2.个人负责模块或任务说明 学生登陆界面的前端实现和与数据库的连接 学生 ...
- Django学习案例一(blog):五. 开发主页(博客列表展示)
主页是一个“博客列表”页.博客要按发布时间的倒序来排列,每个博客都要包含标题.作者.分类.发布时间的显示(年-月-日 时:分)及节选的正文内容(前 100 个字).点击单独的博客可以进入其详情页. 1 ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(四)
系列文章 基于 abp vNext 和 .NET Core 开发博客项目 - 使用 abp cli 搭建项目 基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来 ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - 终结篇之发布项目
系列文章 基于 abp vNext 和 .NET Core 开发博客项目 - 使用 abp cli 搭建项目 基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来 ...
- Termux搭建hexo博客并部署到GitHub
Termux搭建hexo博客并部署到GitHub 安装 termux-change-repo apt update apt install git && nodejs &&am ...
随机推荐
- 03.product.js
/* item.jd.com Compressed by uglify Author:keelii Date: 2014-08-05 6:52:26 [PM] */ function insertSc ...
- ios下,对于position:fixed支持不完美的额解决方案
ios下,当有文本框时,会调用输入法,而这个时候,定位(fixed)在底部的东西,就会被弹上例,离底部有段距离,这算是个坑了. 我的解决方案是这样的. 除了定位在底部的元素外,用一个大div把其他元素 ...
- 第七届蓝桥杯C++B组省赛
1.煤球数目 2.生日蜡烛 3.凑算式 4.快速排序 5.抽签 6.方格填数 7.剪邮票 8.四平方和 9.交换瓶子 10.最大比例 今天是周三了,周天刚考完,这次做的还是不好(上次是全省最后一名). ...
- 构建高性能可扩展asp.net网站--20130628
构建高可扩展性最经常讨论到的问题: 如何才能让HTML 显示得更快? 缓存的最佳方式是什么? 如何使用IIS 让网站更快? 如何处理会话状态? 如何改进ASP.NET 代码? 我的数据库为什么这么慢? ...
- ios 对齐属性
四个容易混淆的属性:1. textAligment : 文字的水平方向的对齐方式1> 取值NSTextAlignmentLeft = 0, // 左对齐NSTextAlignme ...
- LLDB命令查看内存的分配历史
(lldb) script import lldb.macosx.heap(lldb) malloc_info --stack-history 0x10010d680
- Hive基础之COALESCE用法
语法: COALESCE(T v1, T v2, …) 返回参数中的第一个非空值:如果所有值都为NULL,那么返回NULL 以emp表为例: desc emp; empno int None enam ...
- Cocos2dx3.0过渡篇 各种遍历与范围for语句的使用【转】
1.CCArray的遍历看到这里,有些人又按耐不住的要举起西瓜刀了:你不是说3.0beta后已经没有CCArray这货了吗?现在又拿出来作甚?其实我也很无辜,CCArray确实是没了,但在某个不为人知 ...
- android 隐藏系统键盘
-----------------------------------------已验证----------------------------------- public static void c ...
- J1签证办理全过程
从3月底开始申请,整理J1的材料,一直到现在VISA的status变成了issued,中间被check了20多天,终于快要可以去silicon valley了. 废话不多说,J1签证很easy,不要有 ...