0
방문자 IP를 가져 와서 Riak 데이터베이스에 저장하는 작은 앱을 작성하려고합니다./show route에는 모든 방문자, 즉 저장된 IP 및 관련 날짜가 나열되어야합니다. 그러나 어떤 이유로 든 마지막 방문자 만 저장하거나 마지막 방문자 만 가져 오는 중입니다. 여기서 내가 뭘 잘못하고 있니? 확실한 잘못된 코드 문제뿐만 아니라 잘못된 길 - 확실한 SQL 사용자로부터 전환하려고하고 있으며 '선택 *에서 ...'이 가능하지 않겠다고 머리를 감쌀 수 있습니다.)Python과 Flask로 Riak에서 여러 값을 한 번에 저장 (또는 페치)
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')
음 ... 그럼 어떻게 보관해야합니까? if'd가 매번 고유 한 이름을 주면, nosql부터 'select * from'을 사용할 수 없기 때문에 db에서 가져올 항목을 알지 못합니다. – SpankMe
python dict와 같이 버킷의 모든 키를 나열 할 수 있습니다. http://docs.basho.com/riak/latest/references/apis/http/HTTP-List-Keys/ – Oin
해당 문서에는 "Not for production -이 작업을 수행하려면 클러스터에 저장된 모든 키를 통과해야하며 프로덕션 환경에서는 사용하면 안됩니다. " 경고. 나는 이것이 이것을하는 방법이 아니라고 생각한다. – SpankMe