【问题标题】:how to import a html template in Flask? [duplicate]如何在 Flask 中导入 html 模板? [复制]
【发布时间】:2018-10-18 02:33:16
【问题描述】:

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

解压后,文件夹包含 -

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

我知道我需要将 index.html 文件放在我的“模板”文件夹中,并将 css 放在我的“css”文件夹中,但我不知道将字体文件夹或图像文件夹放在哪里。我尝试了一些不同的方法,但最终还是得到了一个只有 html 的页面。

【问题讨论】:

    标签: html css templates flask


    【解决方案1】:

    您应该将index.html 放在templates 文件夹中,并将其他所有内容放在static 文件夹中。

    那么,在你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') }}">
    

    【讨论】:

    • 谢谢!我缺少的是我需要更改 href 的路径。
    【解决方案2】:

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

    文件结构:

        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 路径。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-21
      • 2015-11-02
      • 2016-08-25
      • 1970-01-01
      • 2012-02-13
      • 2018-05-15
      • 2018-05-22
      相关资源
      最近更新 更多