簡體   English   中英

使用 Flask 和 wtform 實現 Python 日期時間增量

[英]Implement Python datetime delta with Flask and wtform

使用 flask 和 wtforms 我想控制用戶輸入的date_fromdate_to


now = datetime.today()
two_month_ago = now - timedelta(days=60)
date_from = DateTimeField('date_from', format='%Y%m%d',validators=[DateRange(min=anchor_date, max=None, format='%Y%m%d')], default=two_month_ago)
date_to = DateTimeField('date_to', format='%Y%m%d',validators=[DateRange(min=anchor_date, max=None, format='%Y%m%d')], default=now)

這段代碼工作正常,但我發現數據總是返回相同的。 調試后原因是現在它正在被存儲。 為了解決這個問題,提到直接使用datetime.today而不是datetime.today() 但我不再能夠使用兩個月前的 delta 來計算。 如何克服這個問題?

我認為您需要將默認設置為可調用。

from datetime import datetime, timedelta

def two_months_ago():
    return datetime.today() - timedelta(days=60)

class MyForm(FlaskForm):
    date_from = DateTimeField(
        'date_from', 
        format='%Y%m%d',
        validators=[DateRange(min=anchor_date, max=None, format='%Y%m%d')],
        default=two_month_ago()
    )
    date_to = DateTimeField(
        'date_to', 
        format='%Y%m%d', 
        validators=[DateRange(min=anchor_date, max=None, format='%Y%m%d')], 
        default=datetime.today()
    )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM