示例#1
0
def conditional_fetch(report_date, refetch=False):
    daily_report = DailyReport.query.filter(
        DailyReport.report_date == report_date).first()

    if daily_report is None:
        daily_report = DailyReport(report_date=report_date)
        db.session.add(daily_report)
    if daily_report.report_html is None or refetch:
        try:
            daily_report.report_html = fetch_daily_report(
                report_date.strftime("%Y-%m-%d")).encode('utf-8')
            daily_report.fetch_timestamp = datetime.utcnow()
        except (URLError, ReportFetchError, ReportNotFoundError):
            raise
        db.session.commit()

    return daily_report.report_html