【问题标题】:Flask image upload in HTML?在 HTML 中上传烧瓶图像?
【发布时间】:2019-05-30 05:45:20
【问题描述】:

所以,我想在我的网站 (HTML) 中上传一张图片。当我运行代码时,该框确实出现了,但它不显示图像,而是显示图像名称。这是我使用的代码: app = Flask(名称)

<img src="{{ url_for('static', filename='image.jpg') }}" alt="image.jpg" width=208 length=284>

我确实尝试将我的图像和代码放在目录中:/html/static

我什至尝试过这么简单的代码,但没有成功:

from flask import Flask
app = Flask(__name__)

@app.route('/new')
def new_file():
    return """

<html>
<head>
</head>
<body>
<p>
This is an image.
<img src="{{ url_for('static', filename='image.jpg') }}" alt="image.jpg"     width=208 length=284>
</p>
</body>
</html>"""

if __name__=='__main__':
    app.run(host='0.0.0.0', debug=True)

【问题讨论】:

  • 您可以直接在浏览器中加载/static/image.jpg URL,还是会出现 404 错误?
  • 除非你有一个 static 目录与你的主要烧瓶代码在同一位置,否则该链接将不起作用。
  • 请注意,Flask 有自己的static 目录 作为项目的一部分。 /htm/static 是硬盘上的不同位置吗?如果是这样,如果没有额外的配置,那将无法工作。
  • 404 没有出现在页面中,但它在终端中。 (我运行代码的地方)

标签: python html flask terminal image-uploading


【解决方案1】:

我假设 img 标记正确位于模板中,而 app = Flask(__name__) 不在模板中,您只是将它们都复制到示例中?

您的引号似乎有问题。本质上,您不应该在双引号字符串“内部”使用双引号。这是一个错误示例:"This is "the" wrong method". 这是一个没有错误的示例:"This is 'the' correct method." 请注意,我已将字符串中的双引号替换为单引号。

以下是将其应用到代码中的方法:

<img src="{{ url_for('static', filename='image.jpg') }}" alt="image.jpg" width=208 length=284>

我已将文件名周围的双引号替换为单引号。 让我知道这是否有帮助!

【讨论】:

  • 你能展示你完整的python代码和完整的模板代码吗?
【解决方案2】:

问题是您在 url_for 中使用的 static 文件夹应该在您的应用程序文件夹中,而不是像 /html 这样的单独文件夹/静态

我一直在关注 Miguel Grinberg Flask 博客中的应用程序结构:

Your Application\
  app\
    static\
    templates\
    __init__.py
    views.py
    routes.py
  manage.py

您的图片应位于 app/static 文件夹中,以便使用 url_for 自动生成其 url。

此外,如果在外部使用了双引号,请确保在图像名称周围使用单引号。可以参考:

Having both single and double quotation in a python string

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多