Let model's engine echo if app is in debug mode.
Use sqlalchemy.types.Sring but not sqlalchemy.String.
And a status attribute to the user.
Add register_time attribute to the user.

register_time will be None if you leave out it when initialize a User
instance. And after commit, it will be the utc time when the commit
happen.
register_time will use utcnow when create the User instance.

Now register_time will use utcnow immediately if developer leave out it,
but not depend on the default value of the column. It just prepare for
the futhure last_login_time using the register_time as default value.

Or use utcnow straightforwards as the last_login_time's default value?
Add last_login_time attribute to the User.