You want a custom data type, described here: http://docs.sqlalchemy.org/en/rel_0_9/core/types.html#custom-types
Specifically, something like this:
import pytz # from PyPI
class AwareDateTime(db.TypeDecorator):
'''Results returned as aware datetimes, not naive ones.
'''
impl = db.DateTime
def process_result_value(self, value, dialect):
return value.replace(tzinfo=pytz.utc)
Then just make the column like this:
created_on = db.Column(AwareDateTime, default=db.func.now(), nullable=False)