我刚做了一个网页,可以让我的用户使用日历选择他们想要查看的日期,我们每天都有很多文件..但现在他们要求我像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
'
答案 0 :(得分:0)
您当前正在迭代文件并尝试获取文件的最后修改时间。虽然这有效,但随着应用程序的增长,这将变得非常耗费资源。以这种方式查找特定日期范围内的文件也很困难。
相反,请使用数据库。上载文件时,为其创建条目。修改文件后,使用上次修改时间更新条目。
理想情况下,您可以拥有以下字段:
在您的Flask视图中,您可以从前端传递两个日期,例如start_date
和end_date
。现在使用这两个日期,您需要找到在这两个日期之间创建/修改的文件。