Flask 在引用蓝图页面时为 html 文件中的 url_for 给出未定义的错误

Flask gives undefined error for url_for in html file when referencing to a blueprint page

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

init.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', methods=('GET', 'POST'))
def fozes():
    pass

@bp.route('/erleles', methods=('GET', '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

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