美文网首页我爱编程Python
jinja2.exceptions.TemplateNotFou

jinja2.exceptions.TemplateNotFou

作者: 道书简 | 来源:发表于2018-04-12 18:02 被阅读0次

      最近学习flask的bootstrap模板相关知识,但是执行程序时报错找不到模板。经过一下午的折腾发现了问题症结所在。

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


    第一种情况:
      没有templates文件夹,因为默认情况下,Flask在程序文件夹中的templates子文件夹中寻找模板。
    解决方案:
      在程序文件夹下边新建一个templates文件夹,将index.htmluser.html模板文件放进去。如下图所示:

    templates文件夹

    第二种情况:
      hello.py程序中没有bootstrap = Bootstrap(app)或者bootstrap = Bootstrap(app)语句放错了位置。
    解决方案:
      正确添加bootstrap = Bootstrap(app)语句。

      错误示范: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)
    
    正确执行

    附模板代码:
    index.html文件内容:
    <h1>Hello World!</h1>

    user.html文件内容:

    {% 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 %}
    

    相关文章

      网友评论

        本文标题:jinja2.exceptions.TemplateNotFou

        本文链接:https://www.haomeiwen.com/subject/axrfkftx.html