Python 如何使用Flask process 2日期,如Expedia?

Python 如何使用Flask process 2日期,如Expedia?,python,flask,Python,Flask,我刚刚做了一个网页,允许我的用户使用日历选择他们想要查看的任何日期,我们每天都有很多文件。。但现在他们要求我像Expedia一样制作日历,用户选择开始日期和结束日期,我应该能够显示这两天范围内的所有文件,默认情况下,无论何时用户选择开始日期,结束日期都应该相同,并且用户应该能够更改结束日期。。此外,结束日期必须大于开始日期。。 Blow是我获取文件信息的功能 def get_files(date): res_files = [] path = os.path.join(BASE_DIR,date

我刚刚做了一个网页,允许我的用户使用日历选择他们想要查看的任何日期,我们每天都有很多文件。。但现在他们要求我像Expedia一样制作日历,用户选择开始日期和结束日期,我应该能够显示这两天范围内的所有文件,默认情况下,无论何时用户选择开始日期,结束日期都应该相同,并且用户应该能够更改结束日期。。此外,结束日期必须大于开始日期。。 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

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

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

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

  • 文件路径
  • 头衔
  • 描述
  • 创建于
  • 更新地址

在烧瓶视图中,可以从前端传递两个日期,例如
start\u date
end\u date
。现在使用这两个日期,您需要查找在这两个日期之间创建/修改的文件

不需要。您也需要修改它。获取文件路径并使用它们。