【问题标题】:jinja2 UndefinedError: 'individual_page' is undefinedjinja2 UndefinedError: 'individual_page' 未定义
【发布时间】:2021-07-18 07:10:08
【问题描述】:

我试图深入了解用户发布的每个帖子。

@blogs.route('/individual_set/<int:set_id>')
def individual_set(set_id):
    individual_page = Set.query.get_or_404(set_id)
    return render_template('forms_page.html', individual_page = 
    individual_page)

这里 Set 是数据库模型,包含 id、title、content 等。 但是,当我尝试使用 for 循环访问呈现帖子的页面时。我收到错误消息说 individual_page 未定义。而我在上面定义individual_page

我做的一件事是我尝试直接访问 /individual_page/1。它正在工作。每当我尝试访问下面的 HTML 页面时,它都无法正常工作。 这是呈现每个集合的页面。

      {% for each_set in sets %}
      <a href="{{url_for('blogs.individual_set',set_id = 
      individual_page.id)}}"></a>
      <div class="practice-set shover">
        <p class="practice-set-index">{{each_set.id}}</p>
        <div class="line-set"></div>
        <p class="set-content-text">{{each_set.title}}</p>
        <p class="set-plan">{{each_set.price}}</p>
      </div>
      </a>
      {% endfor %}

这是所有集合的查询。在我尝试进入 /set_page 的那一刻。 错误已显示。

@blogs.route('/set_page')
def set_page():
    sets = Set.query.order_by(Set.date_posted.desc())
    return render_template('sets_page.html',sets = sets)

这是负责重定向到 /set_page 的 HTML sn-p

      <a
        href="{{url_for('blogs.set_page')}}"
        class="index-card-btn btn-primary"
        >Continue
      </a>

【问题讨论】:

    标签: python python-3.x flask jinja2


    【解决方案1】:

    这段代码有问题:

    @blogs.route('/ind_set/<int:set_id>')
    def ind_set(set_id):
        ind_set= Set.query.get_or_404(set_id)
        return render_template('forms_page.html',ind_set=ind_set)
    

    您的函数名为 ind_set 并定义了一个路由,但您在下一行将其重新定义为其他内容:

    ind_set= Set.query.get_or_404(set_id)
    

    所以解决方法是重命名函数或变量,这样它们就不会发生冲突。事实上,我建议将两者都重命名 - 为变量和函数使用更具描述性的名称。

    【讨论】:

    • 是的,先生,我按照您说的做了,但不是运气。我已经更新了问题
    • 如果您的路由定义为:@blogs.route('/individual_set/&lt;int:set_id&gt;'),像 /individual_page/1 这样的 URL 可以正常工作,这让我感到惊讶。我相信函数名称和路由名称之间仍然存在混淆?您确定您的代码中没有更多路线吗? &lt;a href={{url_for('blogs.individual_set',set_id = individual_page.id)}}"&gt;&lt;/a&gt; 应该是:&lt;a href={{ url_for('blogs.individual_set', set_id=each_set.id) }}"&gt;&lt;/a&gt; - 就像你在下面的行中所做的那样。
    猜你喜欢
    • 2021-10-11
    • 2015-09-25
    • 1970-01-01
    • 2015-08-14
    • 1970-01-01
    • 1970-01-01
    • 2018-03-11
    • 1970-01-01
    相关资源
    最近更新 更多