zoukankan      html  css  js  c++  java
  • 个人博客实现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函数的声明,发现是这样的:

    1  def query(self, query, *parameters, **kwparameters):
    2         """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')

    这样就不会报错了!

  • 相关阅读:
    Python使用requirements.txt安装类库
    virtualenv -- python虚拟沙盒(linux版本)
    linux下导入、导出mysql数据库命令
    linux中mysql基本操作
    aspx.cs方法设置webmenthod特性接收ajax请求
    vue高级路由
    浅析JS模块规范:AMD,CMD,CommonJS
    当前不会命中断点还未为文档加载任何符号——问题探究
    Node.js安装及环境配置之Windows篇
    NewtonSoft.Json NULL转空字符串
  • 原文地址:https://www.cnblogs.com/bwangel23/p/4873297.html
Copyright © 2011-2022 走看看