从另一个驱动器提供烧瓶文件

时间:2014-08-25 05:53:56

标签: flask

我正在尝试从外部硬盘驱动器中获取文件并在我的HTML页面中使用它。由于我使用Flask作为我的框架工作,我很难访问虚拟环境之外的任何东西。我试图更改静态文件夹,但我发现没有有效的方法来完成此操作。如果有一种方法可以将所有HTML静态文件路由到我的外部硬盘驱动器,那将会很棒。一切正常,请接受视频文件。

到目前为止,我的 init .py看起来像这样

from flask import Flask


app = Flask(__name__)
app.config.from_object('config')

from app import views

我的html文件看起来像这样

<!DOCTYPE html>
<html>
  <head>
    <style>
      body {background-image: url(static/B1.jpg);}
    </style>
    <title>Server</title>
  </head>
  <body>
    <video width="original" height="original" controls>
      <source src="static/movie.mp4" type="video/mp4">
    </video> 
  </body>
</html>

感谢大家的帮助:) 我可以将html更改为src到这样的

      <source src="../../../../../E:/Movies/movie.mp4" type="video/mp4">

如果我不知道为什么只用这个源打开一个html就可以了呢?

我认为我的问题是烧瓶无法将文件路由到html是否有办法路由文件?

1 个答案:

答案 0 :(得分:0)

所有静态文件必须位于static文件夹中。你有一些选择:

  1. 将文件系统中其他位置的文件复制到该文件夹​​中
  2. 向服务器脚本添加一些代码,将文件从其原始文件复制到静态文件文件夹
  3. 将您的服务器脚本放在外部驱动器上,以便您的静态文件夹位于该驱动器上,并从那里运行它。如果您需要提供该驱动器上多个文件夹中的内容,您可以创建static文件夹下的那些文件夹的快捷方式,但我现在无法测试,在Windows上我怀疑这会起作用(在Linux上)非常有可能符号链接起作用。)
  4. 您可以为每个具有静态内容的不同文件夹运行一个烧瓶应用,并在另一个端口上进行侦听。这些应用程序都是完全相同的。您的主应用程序提供的HTML将与这些端口建立链接。
  5. 查找源烧瓶中查找源文件夹的位置,并通过几行代码扩展,以便能够查看其他文件夹。
  6. 使用flask.send_fileflask.send_file_from_directory:只要您的数据库包含文件ID到文件路径的映射,并且您将文件ID放在提供给的HTML中客户端,然后当客户端请求文件时,您的烧瓶应用程序使用URL中的ID来确定文件位置并使用flask.send_file_from_directory来提供文件。
  7. 您也可以使用Flask蓝图,因为每个蓝图都可以有its own static folder