jinja2.exceptions.TemplateNotFound

??最近學(xué)習(xí)flask的bootstrap模板相關(guān)知識,但是執(zhí)行程序時(shí)報(bào)錯(cuò)找不到模板。經(jīng)過一下午的折騰發(fā)現(xiàn)了問題癥結(jié)所在。

jinja2.exceptions.TemplateNotFound
jinja2.exceptions.TemplateNotFound: bootstrap/base.html


第一種情況:
??沒有templates文件夾,因?yàn)槟J(rèn)情況下,F(xiàn)lask在程序文件夾中的templates子文件夾中尋找模板。
解決方案:
??在程序文件夾下邊新建一個(gè)templates文件夾,將index.htmluser.html模板文件放進(jìn)去。如下圖所示:

templates文件夾


第二種情況:
??hello.py程序中沒有bootstrap = Bootstrap(app)或者bootstrap = Bootstrap(app)語句放錯(cuò)了位置。
解決方案:
??正確添加bootstrap = Bootstrap(app)語句。

??錯(cuò)誤示范:bootstrap = Bootstrap(app)放在了程序最后,依然提示找不到bootstrap/base.html。

from flask import Flask
from flask import render_template
from flask_bootstrap import Bootstrap

app =Flask(__name__)

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

@app.route('/user/<name>')
def user(name=None):
    return render_template('user.html',name=name)

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

bootstrap = Bootstrap(app)

??正確示范:

from flask import Flask
from flask import render_template
from flask_bootstrap import Bootstrap

app =Flask(__name__)
bootstrap = Bootstrap(app)

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

@app.route('/user/<name>')
def user(name=None):
    return render_template('user.html',name=name)

if __name__=='__main__':
    app.run(debug=True)
正確執(zhí)行

附模板代碼:
index.html文件內(nèi)容:
<h1>Hello World!</h1>

user.html文件內(nèi)容:

{% extends "bootstrap/base.html" %}
{% block title %}bill{% endblock %}
{% block navbar %}
<div class="navbar navbar-inverse" role="navigation">
    <div class="container">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle"
                    data-toggle="collapse" data-target=".navbar-collapse">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="/">bill</a>
        </div>
        <div class="navbar-collapse collapse">
            <ul class="nav navbar-nav">
                <li><a href="/">Home</a></li>
            </ul>
        </div>
    </div>
</div>
{% endblock %}
 
{% block content %}
<div class="container">
    <div class="page-header">
        <h1>Hello, {{ name }}!</h1>
    </div>
</div>
{% endblock %}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 22年12月更新:個(gè)人網(wǎng)站關(guān)停,如果仍舊對舊教程有興趣參考 Github 的markdown內(nèi)容[https://...
    tangyefei閱讀 35,415評論 22 257
  • 第三章 模板 序 為什么要分離 易于維護(hù)的代碼,關(guān)鍵在于保持簡單的結(jié)構(gòu)。而我們之前編寫的hello.py雖然簡單,...
    科幻經(jīng)典閱讀 1,612評論 0 6
  • 第三章 模板(Templates) 編寫易于維護(hù)的程序的要點(diǎn)在于書寫干凈、良好結(jié)構(gòu)的代碼。你以前所見的代碼都過于...
    易木成華閱讀 1,258評論 0 2
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,590評論 19 139
  • 渲染模板 模板文件后綴名是 .html, 這些文件就是普通的 html 文件加上一些占位符變量, 它們都默認(rèn)存放在...
    焉知非魚閱讀 835評論 0 1

友情鏈接更多精彩內(nèi)容