0
我正在嘗試編寫一個小應用程序,它可以獲取訪客IP並存儲在Riak數據庫中。在它的/ show路線上,它應該列出所有訪客,即存儲的IP和相關日期。但是,由於某種原因,我要麼只存儲最後一個訪問者,要麼只提取最後一個訪問者。我在這裏做錯了什麼?我確信它不僅錯誤的代碼問題,而且錯誤的方式 - 我試圖從硬鐵SQL用戶切換,我無法包裝我的頭關於沒有'select * from ...'可用;)從Riak與Python和Flask一起存儲(或讀取)多個值
import riak
import json
from flask import Flask, request, render_template
from datetime import datetime
app = Flask(__name__)
riak = riak.RiakClient(host='some.domain', port=8087, transport_class=riak.RiakPbcTransport)
def date(obj):
return obj.isoformat() if hasattr(obj, 'isoformat') else obj
@app.route('/')
@app.route('/index')
def index():
db = riak.bucket('visitor')
ip = request.remote_addr
time = json.dumps(datetime.now(), default=date)
new_visitor = db.new('log', data={
'ip': ip,
'time': time,
})
new_visitor.store()
return ip
@app.route('/show')
def show():
db = riak.bucket('visitor')
visitors = db.get('log')
return render_template("show.html", visitors=visitors.get_data())
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0')
呃......那我應該如何儲存它們?如果每次給它們賦予唯一的名字,那麼我不知道從db中獲取什麼,因爲它的nosql並沒有'select * from'可用。 – SpankMe
與python字典一樣,您可以列出存儲桶中的所有密鑰:http://docs.basho.com/riak/latest/references/apis/http/HTTP-List-Keys/ – Oin
該文檔具有巨大的「不適用於生產 - 此操作需要遍歷羣集中存儲的所有密鑰,並且不應在生產中使用。「警告。我認爲,這不是做到這一點的方法。 – SpankMe