我正在開發一個項目,該項目模擬使用Redis作爲數據庫的簡單的類似twitter的社交媒體,並且它包含python來處理redis和django框架。 我這是想回到一個人的時間表的最後30個職位的功能,這是這樣的:如何在網頁上顯示Redis排序集元素
def get_status_messages(conn, uid, timeline='home:', page=1, count=30):
statuses = conn.zrevrange('%s%s'%(timeline, uid), (page-1)*count, page*count-1)
pipeline = conn.pipeline(True)
for id in statuses:
pipeline.hgetall('status:%s'%id)
return filter(None, pipeline.execute())
時間表帖子列表存儲在一個有序集合節省帖子ID,後時間戳並由後者對列表進行分類。並且每個狀態帖子被保存爲具有唯一ID的散列。 時間軸zset的名稱爲'profile:xxx',其中xxx是作者的ID,每個帖子的名稱爲'status:yyy',其中yyy是帖子的唯一ID。 我試着來顯示一個HTML頁面,這些職位,並在這裏不用我的家「視圖」代表時間表:
def home(request):
id = request.session.get('member_id')
prof=get_status_messages(conn, id, timeline='home:', page=1, count=30)
fp = open('template/home.html')
t = Template(fp.read())
fp.close()
html = t.render(Context({'item_list': prof.iteritems()}))
return HttpResponse(html)
最後在時間軸上的HTML文件,我們有這樣的:
<html>
<head>
<title>homePage</title>
</head>
<body>
<ol>
{% for key, value in item_list %}
<li>{{ key }} : {{ value }} </li>
{% endfor %}
</ol>
</body>
</head>
</html>
然而,當我繼續到時間線頁面,我已顯示此錯誤:
「名單」對象有沒有屬性「iteritems」
我已經使用了相同的模式來讀取哈希中的項目,它工作得很好。由於我是python和django的新手,我不太確定可能是什麼問題,爲什麼它不能用zset。有沒有人有任何想法可能是這裏的問題?
編輯:我試圖打印'prof'變量的值,這是結果。請注意'hello world','我是pegah kiaei!'和'rrr'是來自以下用戶的測試推文:
[{'uid': '2', 'login': 'p_kiaei', 'id': '7', 'message': '\trrr', 'posted': '1492107986.573'},
{'uid': '2', 'login': 'p_kiaei', 'id': '6', 'message': '\tI am pegah kiaei!', 'posted': '1492107752.173'},
{'uid': '2', 'login': 'p_kiaei', 'id': '5', 'message': 'hello world\t', 'posted': '1492107393.602'}] .
在此先感謝!
謝謝您的回答。我試過這個解決方案,我不再有錯誤,但現在我有一個空白頁面,沒有項目顯示。 –
您可以在您的視圖中打印「prof」並在此顯示結果? –
當然,我將結果添加到我的問題。感謝提示!:) –