It looks like cr is some kind of a query object from an ORM. If that is the case, then the difference is that fetchall() will return a list of all the results (even if there is one result, it will be returned as a list of length one). fetchone() will return the one result (not in a list); but will raise an exception if there isn't exactly one result. By default, the result will be either a list or a tuple of values. The dict- versions will return the result as a dict mapping column names to the values.

But yeah, as micseydel said, we'd need to know what cr is to be able to tell for sure.