【问题标题】:Python Flask SQLalchemy count rows of certain userPython Flask SQLalchemy 计算特定用户的行数
【发布时间】:2017-02-03 14:10:18
【问题描述】:

我有一个桌子房间,用户在其中保存房间。每个房间都有一个外键 "users_id",所以我知道哪个房间属于哪个用户。

我需要统计每个用户的所有房间并为我的管理仪表板显示数字。

我有一个解决方案,但感觉不正确。

我正在对所有房间和所有用户进行两次查询:

users = db_session.query(User).order_by(desc('id'))

rooms = db_session.query(Zimmer)

在我的 jinja2 中,我负责检查哪些房间属于哪个用户。我正在创建一个列表并为每个用户附加房间,然后我在列表变量上使用 jinja2 计数方法,我还必须创建附加变量display: none;

{% for user in users %} 
    {% set total_rooms = [] %}
    {% for room in rooms %}
    {% if room.users_id == user.id %}
        <span class="make-display-none">
        {{ total_rooms.append(room) }}
        </span>
    {% endif %}
    {% endfor %}
    <p> Anzahl Objekte: {{ total_rooms|count }} </p>    
{% endfor %}

它有效,但我觉得必须有更好的解决方案!

【问题讨论】:

    标签: python sqlalchemy jinja2


    【解决方案1】:

    您应该使用联接,然后计数。首先使用密钥 userId 将 users 表与 rooms 表连接起来。然后,一旦您拥有joined 表,请对所有行进行计数。

    您可以在 SQLAlchemy here 中找到连接。

    【讨论】:

      猜你喜欢
      • 2021-12-27
      • 1970-01-01
      • 1970-01-01
      • 2019-04-23
      • 1970-01-01
      • 2021-09-28
      • 2015-09-04
      • 1970-01-01
      • 2020-11-17
      相关资源
      最近更新 更多