烧瓶不提供图片

zac*_*ach 17 html python flask

我创建了一个小型Flask应用程序,用于在本地计算机上处​​理和显示本地消费数据.我的Flask应用程序处理子文件夹中的数据,然后打开一个网页以显示已处理的数据.除了不提供图像外,一切看起来都很棒.例如,生成的HTMl源将具有以下内容:

<img src="/Users/username/Desktop/datafolder/pics/pic1.png" alt="pic1"> 
Run Code Online (Sandbox Code Playgroud)

但是没有图像.路径是正确的,所以我猜测它与图像传递或未传递给Flask的方式有关render_template.也许有一种方法来指定我在django帖子中看到的媒体目录?

关于我如何能够包含图像的任何建议都将非常受欢迎.

最好的问候,zach cp

编辑:如答案和注释中所述,所有静态文件必须位于指定的静态目录中.我使用"file://"构造触发浏览器给出错误消息: "Not allowed to load local resource: file:///Users/username/Desktop/datafolder/pics/pic1.png" 这就是我无法看到图像的原因.我可以使用下面的任何解决方案,导致我想要在指定的静态文件夹中提供的图像.

Mar*_*eth 18

Flask应用程序将尝试提供静态文件的文件默认为应用程序根目录中的"静态"路径.因此,如果您在...中运行您的程序

C:\Users\username\Desktop\MyApp

静态文件夹将是

C:\Users\username\Desktop\MyApp\Static

因此,在尝试服务时

/Users/username/Desktop/datafolder/pics/pic1.png

Flask将尝试提供的文件实际上将是......

C:\Users\username\Desktop\MyApp\Static\Users\username\Desktop\datafolder\pics\pic1.png

这可能是不对的.

因此,你可以做一些事情:

  1. 将正在处理的文件更改为运行Flask应用程序的"静态"文件夹,并生成相对于该目录的HTML src值

  2. static_folderFlask构造函数上设置参数.这允许您专门设置静态文件的提供位置.

    app = Flask(static_folder='C:\\Some\\Directory')
    
    Run Code Online (Sandbox Code Playgroud)
  3. 正如一些评论所建议的那样,改为使用file:// type.如果它不起作用,那么发布你正在尝试的东西,因为它应该工作:)


小智 12

好吧,你最好看看这个:http://flask.pocoo.org/docs/quickstart/#static-files 你需要做什么:

cd path/to/your/flask/app
mkdir static
mv /Users/username/Desktop/datafolder/pics/pic1.png /static
Run Code Online (Sandbox Code Playgroud)

<img src="/static/pic1.png" alt="pic1">在模板中使用.