根据文档,搜索查询应如下所示:
GET /api/person?q={"filters":[{"name":"age","op":"ge","val":10}]}
如何比较日期? 我试过了:
GET /api/person?q={"filters":[{"name":"date","op":"<=","val":"1/20/2015"}]}
这没有得到任何结果,即使有些日期早于 1 年 2015 月 20 日。 我试过了:
GET /api/person?q={"filters":[{"name":"date","op":">=","val":"1/20/2015"}]}
这会返回所有结果,甚至是 2015 年 1 月 20 日之前的结果。
这是用户模型:
class User(db.Model, UserMixin):
id = db.Column(db.Integer, primary_key=True)
date = db.Column(db.DateTime)
type =db.Column(db.String(255))
email = db.Column(db.String(255), unique=True)
password = db.Column(db.String(255))
active= db.Column(db.Boolean())
activated_at = db.Column(db.DateTime())
roles = db.relationship('Role', secondary=roles_users,
backref=db.backref('users', lazy='dynamic'))
查询日期的正确方法是什么?
Davidism 是绝对正确的,我不应该说 JSON datetime——JSON 本身没有表示日期/日期时间格式的方法——它在通信的发送者/接收端识别"嘿,我在这里期待一个日期,这看起来像一个日期,我会尝试把它当作一个日期"。
通常,大多数人使用ISO 8601作为JSON(2014-10-23T18:25:43.511Z
)中的日期时间表示形式,而Flask-Restless似乎使用dateutil.parse
将一些传入的值解析回日期时间字段 - 但奇怪的是,不是GET字段。
因此,看起来表示日期时间值的字符串需要与数据库的期望相匹配 - 平均而言,这将是ISO 8601格式。