当引用蓝图页面时,Flask在html文件中为url_for提供了未定义的错误

我尝试构建一个Web应用程序,并且在导航菜单栏中,当我尝试打开localhost /时,注册蓝图出现了未定义的错误(所以@app.route('/')base.html)有人可以帮忙吗?我好吗?

初始 .py

from flask import (
    flask,render_template)
from .database import DB


def create_app(test_config=None):
    # create and configure the app
    app = flask(__name__,instance_relative_config=True)
    app.config["MONGO_URI"] = "mongodb://localhost:27017/chpalinka"
    DB.init()

    # a simple page that says hello
    @app.route('/')
    def home():
        return render_template('base.html')

    from . import jegyzokonyv
    app.register_blueprint(jegyzokonyv.bp)

    return app

jegyzokony.py

import functools

from flask import (
    Blueprint,flash,g,redirect,render_template,request,session,url_for
)
from .database import DB


bp = Blueprint('jegyzokonyv',__name__,url_prefix='/jegyzokonyv')

@bp.route('/cefrezes',methods=('GET','POST'))
def cefrezes():
    jegyzokonyvek = DB.get_all('cefreze')
    return render_template('jegyzokonyv.html',query=jegyzokonyvek)

@bp.route('/fozes','POST'))
def fozes():
    pass

@bp.route('/erleles','POST'))
def erleles():
    pass

以及base.html的导航部分

<nav class="mt-2">
    <ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu" data-accordion="false">
        <!-- Add icons to the links using the .nav-icon class
                 with font-awesome or any other icon font library -->
        <li class="nav-item">
            <a href="#" class="nav-link active">
                <i class="nav-icon fas fa-tachometer-alt"></i><p>Kezdőlap</p></a>
        </li>
        <li class="nav-header">Jegyzőkönyvek</li>
        <li class="nav-item"><a href="{{ url_for(jegyzokonyv.cefrezes) }}" class="nav-link">
            <i class="nav-icon fa fa-filter"></i><p>Cefrézés</p></a>
        </li>
        <li class="nav-item"><a href="{{ url_for(jegyzokonyv.fozes) }}" class="nav-link">
            <i class="nav-icon fa fa-tint"></i><p>Főzés</p></a>
        </li>
        <li class="nav-item"><a href="{{ url_for(jegyzokonyv.erleles) }}" class="nav-link">
            <i class="nav-icon fa fa-cogs"></i><p>Érlelés</p></a>
        </li>
    </ul>
</nav>

aa和错误消息:

  File "D:\WebPages\Palinka_flask\flaskr\templates\base.html",line 183,in top-level template code
    <li class="nav-item"><a href="{{ url_for(jegyzokonyv.cefrezes) }}" class="nav-link">
  File "D:\WebPages\Palinka_flask\venv\lib\site-packages\jinja2\environment.py",line 430,in getattr
    return getattr(obj,attribute)
jinja2.exceptions.UndefinedError: 'jegyzokonyv' is undefined
yuzisheng 回答:当引用蓝图页面时,Flask在html文件中为url_for提供了未定义的错误

url_for接受一个字符串。在模板中将url_for(jegyzokonyv.cefrezes)更改为url_for('jegyzokonyv.cefrezes')

本文链接:https://www.f2er.com/3161017.html

大家都在问