使用id创建链接:href =“ {{url_for('users /%s'%user [0])}}” / pb,带有端点并构建url(jinja / python / flask)

问题描述 投票:0回答:1

我正在使用2个应用程序(使用python / flask构建)进行项目。第一个应用程序。 py是服务器第二个client.py是客户端。

现在我正在建立从用户访问acces用户的链接/ 8但这不起作用

这里是来自Jinja的users.html / client.py @route / eror消息下

users.html:

{%block body%}   

        <div class="users">
                <div class="list-group">
                        {% for user in users %}

                        <a href ="{{ url_for('users/%s'%user[0]) }}" class="list-group-item list-group-item-action">
                                <div class="d-flex w-100 justify-content-between">
                                        <h5 class="mb-1">{{user[1]}}</h5>
                                        <small>{{user[0]}}</small>
                                </div>
                                <p class="mb-1">{{user[2]}}</p>
                                <small>Know more...</small>
                        </a>

                        {% endfor %}
                </div>


        </div>

{%endblock%}

client.py:

  @client.route('/users/<id>')#ok works 
 def user(id=None):
     if 'logged_in' in session:
         r = actualUser.get(id)
         user=json.loads(r.text)
         return render_template('user.html', user=user)
     else:
         return redirect(url_for('login'))

错误消息:

文件“ /home/elodieb/Rendu/Python/Flask/flask_d02/ex_03/Client/templates/users.html”,第1行,在顶层模板代码中{%扩展了“ base.html”%}文件“ /home/elodieb/Rendu/Python/Flask/flask_d02/ex_03/Client/templates/base.html”,第44行,顶级模板代码{%block body%}文件“ /home/elodieb/Rendu/Python/Flask/flask_d02/ex_03/Client/templates/users.html”,第12行,块“ body”werkzeug.routing.BuildError:无法为端点“ users / 7”构建URL。您是说“用户”吗?

url jinja2 href endpoint id
1个回答
0
投票

[似乎users.html正在寻找users列表(请参阅{% for user in users %}),并且您正在传递单个user实例(render_template('user.html', user=user))。

您可以修改模板而不使用for in循环,也不能像render_template那样将调用更新为render_template('user.html', users=[user]),>

© www.soinside.com 2019 - 2024. All rights reserved.