如何在Flask中获取文件的文件路径?

3

我有一个使用 Fabric 部署代码到某些机器的 Flask 应用程序。

一个特定的方法,fabric.contrib.files.upload_template,需要一个文件名,这是我想要上传到远程机器上的文件的路径。

我有一个名为 index.php 的文件,我想把它放在我的远程机器上。我想使用 upload_template 完成这个任务。

我应该把 'index.php' 放在我的 Flask 文件夹中的哪里? 我如何获得 index.php 的路径以供 upload_template 使用?

请注意:

  1. 我的应用程序托管在 Heroku 上,因此典型的 /home/Sparrowcide/flaskapp/path/to/file 不起作用。
  2. 我知道我可能可以调用写入 /tmp/path/to/file 的方法来解决问题,但我不想这样做,因为这不是一个非常优雅的解决方案。
1个回答

1

简单来说,您可以将它放在任何地方,我认为Flask不会对您施加任何结构上的限制。然而,个人建议创建一个名为data的子目录,并在Flask应用程序中执行以下操作:

path = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'data', 'index.php')

或者,如果我觉得我可能会重复使用这些信息(例如,如果我有多个文件要上传),我可能会将其拆分为多个变量:

SRCDIR = os.path.dirname(os.path.abspath(__file__))
DATADIR = os.path.join(SRCDIR, 'data')

whatever_upload_function(os.path.join(DATADIR, 'index.php'))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接