【发布时间】:2018-12-22 01:39:50
【问题描述】:
这是我使用 Python、Flask、Socketio 和 Javascript 创建的聊天应用程序项目的要求:
“消息视图:一旦选择了一个频道,用户应该会看到该频道中已经发送的所有消息,最多 100 条消息。您的应用应该只将每个频道的 100 条最新消息存储在服务器中- 侧内存。”
所以,我认为我应该做的是创建一个字典列表。像这样:
messages = [ {"user":"Dave", "message":"Hello", "time":"12-24-2018"}, {"user":"John", "message":"Test", "time":"12-21-2018"} ]
我的问题是……
- 如何附加/访问这样的字典列表?
- 如何限制列表的大小,并在添加时将最旧的元素替换为第二旧的元素?
- 这是存储固定大小数据服务器端的最佳做法吗?
【问题讨论】:
-
您需要使用
threading.Lock、list.append和list.pop。需求似乎推断你只是将这个列表存储在内存中,所以我不明白你的第三点 -
1.附加到字典列表很简单。创建一个新的单条消息字典,如
msg = {"user":"Dave", "message":"Hello", "time":"12-24-2018"},然后messages.append(msg)将消息添加到列表中。 2.限制列表大小:将消息列表切片为:messages = messages[-100:]3.这点不清楚,能多解释一下吗?
标签: javascript python flask socket.io