訪問者のIPを取得してRiakデータベースに保存する小さなアプリを作成しようとしています。/ showルートでは、すべての訪問者、つまり保存されているIPと関連する日付を一覧表示する必要があります。ただし、何らかの理由で、最後の訪問者のみを保存するか、最後の訪問者のみをフェッチしています。私はここで何が間違っているのですか?それは間違ったコードの問題だけでなく、間違った方法でもあると確信しています-私はダイハードSQLユーザーから切り替えようとしていますが、「select * from...」が利用できないことについて頭を悩ませることはできません;)
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')