Ответ 1
Вам нужен первый случай. То, что вы делаете, говорит SqlAlchemy, как всякий раз, когда вставлена строка, запустите эту функцию (вызываемую), чтобы получить значение по умолчанию. Это может быть любая вызываемая функция или строковое значение.
Таким образом, функция вызывается точно во время вставки, и вы получаете правильную дату, в которую она была вставлена.
Если вы используете второе значение, вы обнаружите, что все значения по умолчанию имеют одно и то же время. Это будет значение, которое произошло при первом обращении кода.
http://www.sqlalchemy.org/docs/core/schema.html?highlight=default#sqlalchemy.schema.ColumnDefault
This could correspond to a constant, a callable function, or a SQL clause.