Flask - 将方法附加到特定表?

Flask - Attach methods to specific tables?

是否可以将方法附加到 Flask 中的特定表,以便插入数据之前 运行s 的方法?

示例:

# Models.py
class Subscription(db.Model):
payment_date = db.Column(db.DateTime)
notification_date = db.Column(db.DateTime)

@staticmethod
def convert_date_utc(date):
    convert_time = datetime.datetime.strptime(date, "%d/%m/%Y")
    return convert_time.astimezone(pytz.utc)

不是按照下面的方式遍历所有路由并将方法包装在日期周围,是否可以通过将方法附加到它们的表来自动运行这些通过提交时的方法。

sub.payment_date = Subscription.convert_date_utc(formdata['payment_date'])
sub.notification_time = Subscription.convert_date_utc(formdata['notification_time'])

您可以创建自己的类型,而不是使用 DateTime 的列。

这是一个简单的例子,说明它是如何工作的。它继承了 DateTime 但您在处理该值时添加了一个额外的步骤。如果您想 运行 从数据库中获取一些其他代码,您也可以使用 process_result_param 方法。

class CustomDateTime(TypeDecorator):

    impl = DateTime
    cache_ok = True

    def process_bind_param(self, value, dialect):
         convert_time = datetime.datetime.strptime(date, "%d/%m/%Y")
         return convert_time.astimezone(pytz.utc)

再看看这个: