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



根据文档,搜索查询应如下所示:

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格式。

相关内容

  • 没有找到相关文章

最新更新