I am sorry, I don't really understand the Query object. I have done print dir on a created Query obj, does not reveal much to me. It would seem to me that a Query() object could accept Params. Referencing your examples , something like User = Query(name == 'John'), so db.search(User) would produce the same as
User = Query()
db.search(User.name == 'John')
Also, I would think if I did
results = db.Query(name == 'John').search()
Or something like that would also work.
Sorry as I said before, I am still new to Python. I have read the docs, I can't see how to use the Query object other than just creating an instance of it.
Would really like to know how to use it more