【问题标题】:URL_For in FlaskFlask 中的 URL_For
【发布时间】:2020-09-14 13:31:07
【问题描述】:

我需要访问包含图像的子目录,我可以在 HTML 中显示它。我该怎么做。

正在构建图像刮板。在上图中,我展示了我的 Flask 目录。名称 images 是常量名称,其中子文件夹名称是动态的,它是我给出的搜索词的名称。

在上面的 {{results}} 中给出了我作为搜索词的文件夹的动态名称。

【问题讨论】:

  • 请勿截图,将代码粘贴为文本
  • 嗨,很抱歉,由于很多文件是相互关联的,所以我无法发布完整的帖子

标签: python python-3.x flask web-scraping url-for


【解决方案1】:

url_for 提供到先前定义的路由的路径。我猜您没有创建传递这些图像的路线。您可以:

images文件夹移动到您的static文件夹

这样你就可以通过

<img src="{{ url_for('static', filename='images/programming/jpg_0.jpg') }}">

或创建一个图像路由,例如

import os
from flask import send_file

@app.route('/getImage/<string:imgName>')
def getImage(imgName)
    filePath = 'ABSOLUTE_PATH'
    return send_file(os.path.join(filePath, imgName))

然后您可以通过

访问图像

&lt;img src="{{ url_for('getImage', imgName='jpg_0.jpg') }}"&gt;

您还应该考虑让您的静态文件直接由nginxApache 等网络服务器提供服务。

【讨论】:

  • 您好,感谢您的精彩回复。这对我来说开始有意义,因为我不知道 URL_For 是如何工作的。你能帮我解决这个问题吗?这里的 ABSOLUTE PATH 也应该包含我的动态搜索词,对吧?例如:-filePath = "./images/Programming/jpg_0.jpg'。我将如何通过 URL_For 进行编程?
  • 纯粹出于提供图像的目的,我会将它们移到您的static-文件夹中。只需在您创建templates-目录的同一文件夹中创建一个名为static 的目录。
  • filePath 将是存储图像的路径。最简单的是 (Windows) C:\\Users\\User\\ ... \\images\\Programming 或 (Linux) /home/user/ ... /images/Programming。您还可以使用第二个参数调用此路由以确定正确的文件路径。您可能应该阅读以下内容:pythonise.com/series/learning-flask/sending-files-with-flask, stackabuse.com/serving-static-files-with-flask
猜你喜欢
  • 1970-01-01
  • 2015-05-27
  • 2013-10-08
  • 2014-07-22
  • 2018-01-06
  • 2014-08-08
  • 1970-01-01
  • 1970-01-01
  • 2016-10-18
相关资源
最近更新 更多