记一次flask(python)在服务器中下载文件关于路径的大坑!!
源代码中用了用字符串拼凑生成了关于路径的,在win下的测试能够正常通过,但是放到centos7 服务器中发生了无法生成,无法下载的情况,经过一番啃坑,发现了是绝对路径和相对路径的问题!!!
从而进行了修正代码:似乎是Linux系统一定要用os.path.join,才能识别真正的文件和生成文件
获取当前执行文件和执行文件夹的绝对路径:
from os.path import dirname, abspath
print(abspath(__file__)) # 获取当前执行文件的绝对路径
print(dirname(abspath(__file__))) # 获取当前执行文件夹的绝对路径
下面是修正了一行文件路径的方法:
def save_doc_path(self):
BASE_DIR = dirname(abspath(__file__))
doc_path = os.path.join(BASE_DIR, 'down_doc')
save_doc_path = str(self.createtid())
doc_name = save_doc_path+'.docx'
save_doc_path = os.path.join(doc_path,save_doc_path)+'.docx'
return save_doc_path,doc_path,doc_name