0

ユーザーがstlファイルをアップロードし、データ(すべての点、三角形など)がデータベースに保存されて永続的に利用できるようにするsql(sqlite)データベースを作成しようとしています。名前(URLのタイトル)とデータ(配列データ)の2つの列(キーが3つ)しかないデータベースでこれを行うことは可能ですか?

データ配列の形式は次のとおり[[[x1,y1,z1],....],[[v1,v2,v3],...]]です。最初にすべてのポイントが指定され、次に指定されたポイントの順序によって三角形が定義されます。この配列をデータベースに保存できますか?保存できる場合、どのデータ型(整数、文字列など)になりますか?

この問題をさらに読むと、ピクルスにするのが良い方法のようです:http: //docs.python.org/2/library/pickle.html

これを実装する方法を理解するのに苦労しています。pickle(data)を追加するだけでいいですか?

編集:さらに検討すると、ピクルスはJSONを使用している場合には存在しないいくつかのセキュリティホールを導入しているようです。単に呼び出しjsondatastring=JSON.stringify(data)て、それをデータベースに保存することは可能ですか?もしそうなら、適切な列の種類は何でしょうか?

4

1 に答える 1

1

配列をDBに格納し、それをWebアプリケーションコードで操作することだけを目的としている場合は、SQLAlchemyをPickleType選択することをお勧めします。ピクルスとピクルス解除は透過的に行われます。

from sqlalchemy.types import PickleType

class Foo(Base):
    __tablename__ = 'foo'
    id = Column(Integer, primary_key=True)
    name = Column(String)
    array = Column(PickleType)

foo = Foo(name=u'bar', array=[1, 2, 3])
session.add(foo)
session.commit()

foo = session.query(Foo).filter_by(name=u'bar').one()
print foo.array
于 2013-02-04T19:23:24.250 に答える