如何使用 Flask-Restless 按日期搜索模型

How to search a model by date with Flask-Restless

根据documentation,搜索查询应该看起来像:

GET /api/person?q={"filters":[{"name":"age","op":"ge","val":10}]}

如何比较日期?我尝试了:

GET /api/person?q={"filters":[{"name":"date","op":"<=","val":"1/20/2015"}]}

,即使有些在2015年1月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 日期时间——JSON 本身没有表示 date/datetime 格式的方法——它在 sender/reciever通信结束识别"Hey, I'm expecting a date here, this looks like a date, I'll try and treat it like one".

一般来说,大多数人在 JSON (2014-10-23T18:25:43.511Z) 中使用 ISO 8601 作为日期时间表示,而 Flask-Restless 似乎使用 dateutil.parse 来解析 一些 将传入值返回到日期时间字段——但奇怪的是,不是 GET 值。

所以看起来代表您的日期时间值的字符串需要与您的数据库期望的相匹配——平均而言这将是 ISO 8601 格式。