如何使用Flask进程2日期如Expedia?

时间:2016-01-13 14:27:47

标签: python flask

我刚做了一个网页,可以让我的用户使用日历选择他们想要查看的日期,我们每天都有很多文件..但现在他们要求我像Expedia一样制作日历,用户选择开始日期和结束日期,我应该能够显示这2天范围内的所有文件,默认情况下,每当用户选择开始日期时,结束日期应该相同,并且用户应该能够更改结束日期..结束日期也必​​须大于开始日期.. Blow是我获取文件信息的功能..

def get_files(date):
res_files = []
path = os.path.join(BASE_DIR,date)
if os.path.isfile(path):
    return res_files
if (not isdir(path)):
    return res_files
dirs = os.listdir(path)
cat_dirs = [f for f in dirs if os.path.isdir(os.path.join(path,f))]
for c in cat_dirs:
    abs_dir = join(path,c)
    cat_files = [f for f in os.listdir(abs_dir) if os.path.isfile(os.path.join(abs_dir,f))]
    for f in cat_files:
        abs_file = join(abs_dir, f)
        file_time = os.path.getmtime(abs_file)
        t = time.strftime("%H:%M:%S", time.localtime(file_time))
        res_files.append((getctime(abs_file),f ,c, abs_file, t))
files = sorted(res_files, key=lambda tup:tup[0], reverse = True)
return files
pass




def get_multi_files(dates){
files = []
for date in dates:
    files.extends(get_files(date))
return files

'

1 个答案:

答案 0 :(得分:0)

您当前正在迭代文件并尝试获取文件的最后修改时间。虽然这有效,但随着应用程序的增长,这将变得非常耗费资源。以这种方式查找特定日期范围内的文件也很困难。

相反,请使用数据库。上载文件时,为其创建条目。修改文件后,使用上次修改时间更新条目。

理想情况下,您可以拥有以下字段:

  • FILE_PATH
  • 标题
  • 描述
  • created_at
  • 的updated_at

在您的Flask视图中,您可以从前端传递两个日期,例如start_dateend_date。现在使用这两个日期,您需要找到在这两个日期之间创建/修改的文件。