Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 找不到Jinja嵌套模板_Python 3.x_Flask_Jinja2 - Fatal编程技术网

Python 3.x 找不到Jinja嵌套模板

Python 3.x 找不到Jinja嵌套模板,python-3.x,flask,jinja2,Python 3.x,Flask,Jinja2,在我的flask项目中,我有以下结构: app -app -static -templates -layouts footer.html header.html main.html search.html __init__.py app.py MANIFEST.in setup.py 在app.py中: @app.route('/search')

在我的flask项目中,我有以下结构:

app
   -app
     -static
     -templates
       -layouts
         footer.html
         header.html
         main.html
       search.html
     __init__.py
     app.py
     MANIFEST.in
     setup.py
在app.py中:

@app.route('/search')
def show_search_form():
    return render_template('search.html')
search.html:

{% extends "layouts/main.html" %}

{% block body %}

Test

{% endblock %}
main.html

{% include 'header.html' %}

{% block content %}

{% endblock %}

{% include 'footer.html' %}
header.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>App</title>
</head>
<body>

代码有什么问题?

由于footer.html和header.html文件位于布局目录下,因此需要在主模板中引用它们:

main.html

{% include 'layouts/header.html' %}

{% block content %}

{% endblock %}

{% include 'layouts/footer.html' %}

那些文件在你的目录结构中位于何处?@MattHealy抱歉,刚刚将这些文件添加到结构中是的,我已经尝试过了,但也不起作用:jinja2.exceptions.TemplateNotFound:layout/header.htmls应该是“layouts”而不是“layout”?是的,先生。你说得对。在修正了拼写之后,我并没有得到一个错误,而是得到了一个空白页,而不是文本“Test”,没关系。我现在得到一个空页面的唯一原因是因为我引用的是“body”块(它不存在),而不是“content”块
jinja2.exceptions.TemplateNotFound: header.html
{% include 'layouts/header.html' %}

{% block content %}

{% endblock %}

{% include 'layouts/footer.html' %}