不提供图片的Flask

2024-09-30 04:33:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了一个小烧瓶应用程序,用于在本地计算机上处理和呈现本地消费的数据。My Flask应用程序处理子文件夹中的数据,然后打开网页以显示处理的数据。一切看起来都很好,只是没有提供图片。例如,生成的HTMl源代码将具有如下内容:

<img src="/Users/username/Desktop/datafolder/pics/pic1.png" alt="pic1"> 

但是不会有图像。路径是正确的,所以我猜这与图像如何传递或不传递到render_template中的Flask有关。也许有一种方法可以指定媒体目录,就像我在django post中看到的那样?

任何关于我如何能包括图片的建议都是非常受欢迎的。

谨致问候, 扎克cp

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


Tags: 数据图像目录文件夹flaskpng静态username
2条回答

Flask应用程序默认将尝试将静态文件用作应用程序根目录中的“静态”路径的文件。因此,如果你在。。。

C:\Users\username\Desktop\MyApp

静态文件夹将是

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

因此,当试图服侍

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

文件瓶将试图服务实际上将是。。。

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

这可能不对。

因此,你可以做几件事:

  1. 将正在处理的文件更改为运行Flask应用程序的“static”文件夹,并使HTML src值相对于该目录

  2. Flask constructor上设置static_folder参数。这允许您特别设置静态文件的服务位置。

    app = Flask(static_folder='C:\\Some\\Directory')
    
  3. 正如一些注释所建议的,更改为使用file://type。如果它不起作用,那么就发布你正在尝试的内容,因为它应该起作用:)

好吧,你最好看看这个: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

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

相关问题 更多 >

    热门问题