如何在Flask中导入HTML模板?

时间:2018-10-18 02:33:16

标签: html css templates flask

我正在尝试获取此html模板-https://www.free-css.com/free-css-templates/page231/catalyst

解压缩后,文件夹包含-

  • 主要的“ index.html”
  • 一个css文件夹
  • 带有字体的Font-Awesome文件夹
  • 图像文件夹

我知道我需要将index.html文件放在“模板”文件夹中,并将css放在“ css”文件夹中,但是我不知道将字体文件夹或图像文件夹放在哪里。我尝试了几种不同的方法,但最终仍获得了仅带有html的页面。

2 个答案:

答案 0 :(得分:0)

您应将 index.html 放在 “模板” 文件夹中,并将其他所有内容都放在 “静态” < / em> 文件夹。

然后,在您的application.py中,您将:

from flask import Flask, render_template

app = Flask(__name__)

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

index.html 文件中,您将使用 url_for 方法将所有链接都链接到该资源:

<link rel=stylesheet type=text/css href="{{ url_for('static/css', filename='style.css') }}">

<link rel="stylesheet" href="{{ url_for('static/font-awesome/', filename='font-awesome.min.css') }}">

以此类推...

答案 1 :(得分:0)

将图像文件放入静态目录。不过,您也可以使用图像实际存在的静态路径。

文件结构:

    app.py
static
   |----your_Image.jpg
templates
   |----index.html

然后app.py看起来像

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

@app.route('/index', methods=['GET', 'POST'])
def lionel(): 
    return render_template('index.html')

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

在模板中Index.html看起来像

<html>
  <head>

  </head>
  <body>
    <h1>Hi Lionel Messi</h1>

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

  </body>

</html>

这种方式可确保您不会对静态资产的URL路径进行硬编码。