Python 通过烧瓶多对多sqlalchemy显示朋友姓名

Python 通过烧瓶多对多sqlalchemy显示朋友姓名,python,flask,flask-sqlalchemy,jinja2,Python,Flask,Flask Sqlalchemy,Jinja2,我有一个可以结交朋友的应用程序,我可以计算朋友数并在profile.html中显示,但当我尝试打印朋友的名字时,它不起作用(它使用flask sqlalchemy) model.py: view.py: @app.route('/profile/<int:id>') def profile(id): user= User.query.get(id) return render_template('profile.html', id=id, user=

我有一个可以结交朋友的应用程序,我可以计算朋友数并在profile.html中显示,但当我尝试打印朋友的名字时,它不起作用(它使用flask sqlalchemy)

model.py:

view.py:

@app.route('/profile/<int:id>')
    def profile(id):
      user= User.query.get(id)
      return render_template('profile.html', id=id, user= user)
@app.route(“/profile/”)
def配置文件(id):
user=user.query.get(id)
返回呈现模板('profile.html',id=id,user=user)
profile.html:

{% extends "base.html" %}
    {% block content %}
           <strong>name:</strong> {{user.name}} <br>
           <strong>email:</strong> {{user.email }} <br>
           <strong>age:</strong> {{user.age}} <br>
           <br>
           # it shows the number of friends 
           <p>{{ user.is_friend.count() }} friends <p>
           # Am I doing it right?if so why it doesn't show the name of friends?
           <p>{{ user.is_friend.name }} is friend</p>
        {% endblock %}
{%extends“base.html”%}
{%block content%}
名称:{{user.name}}
电子邮件:{{user.email}}
年龄:{{user.age}}

#它显示了朋友的数量 {{user.is_friend.count()}}朋友 #我做得对吗?如果是,为什么不显示朋友的名字? {{user.is_friend.name}}是朋友

{%endblock%}
您选择的名字,
是您的朋友
,可能会引起您的一些困惑。像
friends
这样的东西更清楚一些。您也不需要反向引用,因为每个
用户
都已经有了关系

class User(db.Model):
   id = db.Column(db.Integer, primary_key = True)
   name = db.Column(db.String(50), index=True, unique= True)
   email = db.Column(db.String(50),index=True, unique= True)  

   friends = db.relationship('User', #defining the relationship, User is left side entity
        secondary = friends, 
        primaryjoin = (friends.c.user_id == id), 
        secondaryjoin = (friends.c.friend_id == id),
        lazy = 'dynamic'
    ) 
该关系为您提供了一个查询集,您可以迭代该查询集以获取所有相关记录

{% for friend in user.friends %}
  <p>{{ friend.name }} is friend.</p>
{% endfor %}
{%用于user.friends%}
{{friend.name}}是朋友

{%endfor%}
{% for friend in user.friends %}
  <p>{{ friend.name }} is friend.</p>
{% endfor %}