【问题标题】:Flask render_template not working to show a referenced templateFlask render_template 无法显示引用的模板
【发布时间】:2020-11-15 15:24:05
【问题描述】:

我是 python 和 Flask 的新手,我正在尝试设置一个基本页面来呈现 HTML 模板。我按照说明/教程进行操作,并且可以通过使用 render_template 来呈现 HTML,如下所示:

app = Flask(__name__)

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

我现在正在尝试运行一个示例应用程序,其中应用程序中的 index.html 实际上引用了另一个 .html 页面,如下所示:

../../html/index.html

当我加载这个时,我只看到这个文本 - 字面意思。我假设它正在尝试从引用的文件夹(我验证存在)加载 index.html。

这里缺少什么?我错过了一个模块还是什么?

编辑:

这是我正在运行的主要 .py 脚本。

index.html 位于templates 目录中。然后两个文件夹是它似乎正在引用的html 文件夹:

据此我知道应该是“../html/index.html”,但我也试过了,也没用。

【问题讨论】:

  • 向我们展示模板代码和项目结构!
  • 您可能需要在模板中include html 文件,但不会将您的模板代码视为@KlausD。要求,很难确定。
  • 当您说模板代码时,您是指 index.html 文件中的内容吗?

标签: python python-3.x flask


【解决方案1】:

模板中的静态文件应使用url_for function 插入,如 Flask 文档中所述。 你的情况是:

url_for('../../html/index.html')

【讨论】:

  • 这不起作用......现在我只看到文字文本url_for('../../html/index.html')
  • 你见过this thread吗?
【解决方案2】:

我想你可以通过两种方式做到这一点url_for('templates',filename='index.html') 模板将是存储 html 文件的文件夹,以及 其次你可以使用jinja2的扩展功能{% extends index.html %}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-26
    • 2019-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多