尝试在Flask应用程序网站上显示本地图像

时间:2019-05-04 18:23:23

标签: python html flask

我正在尝试通过烧瓶运行网站以进行分配。 Flask有效且模板有效,问题在于,当我将本地文件放入html页面代码中的块内容中时,本地文件不出现。我也尝试过将图像放置在模板html代码中,但这没有用。简而言之,我想更改背景以及在通过Flask运行但未显示的html页面上显示其他图像。

截至目前,我尝试将图像包含在html模板的开头(无效)。还尝试将其放入体内(无效)。两次我都在w3学校中使用了示例,并确保路径是正确的。当图像位于同一文件夹,静态文件夹或桌面上时,我尝试了一下,但没有用。似乎唯一有效的方法是使用图片的url,如果我在互联网中断时显示此图片,将无济于事。

//////flask code//////
from flask import Flask, render_template, url_for
app = Flask(__name__)


@app.route("/")
@app.route("/home")
def home():
    return render_template('home.html')


@app.route("/new")
def about():
    return render_template('new.html')

@app.route("/exp")
def about():
    return render_template('exp.html')

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

/////html example code(no they are not in the same file)/////
<html>
<head>

</head>
<body>
<style type="text/css">

// Unrelated Styling for Demo Purposes
@import url('https://fonts.googleapis.com/css?family=Lato');

html {
  &, &:after, &:before {
    box-sizing: border-box;
  }
}

html, body {
  height: 100%;
  width: 100%;
  font-size: 16px;
}

body {
  background-image: url("test1.jpg");
  background-repeat: no-repeat;
  background-size: cover;
  font-family: 'Lato', sans-serif;
}
</style>

我要做的就是让烧瓶运行时弹出我的文件夹中的本地文件。如果我单击html文件,它们会显示出来,但是在通过flask运行时它们不会显示出来。请帮忙。

1 个答案:

答案 0 :(得分:1)

确保static文件夹位于应用程序的根目录下,并将图像放入其中。

然后,将图像URL更改为:

url('/static/test1.jpg')

您也可以let Flask generate the static URL/static/test1.jpg替换为

{{ url_for('static', filename='test1.jpg') }}

如果您要更改静态文件夹的位置,则无需手动更改URL。