9

そのため、行が頻繁に変更されるデータベースをセットアップしようとしています。たとえば、1時間ごとに、データベースの特定の部分に番号を追加したいと思います。したがって、self.checkmarksがに等しいデータベースに入力された場合、データベース3のこの部分を追加された数値で更新して、self.checkmarks今は等しくなるようにするための最良の方法は何3, 2ですか?として列を確立しようとしましdb.Arrayたが、属性エラーが発生しました:

AttributeError:'SQLAlchemy'オブジェクトに属性'Array'がありません

データベースを更新する方法を見つけましたが、置き換えるのではなくリストに追加して更新するための最良の方法がわかりません。append私のアプローチは次のとおりですが、列を配列にすることはできないため、うまくいかないと思います。

ven = data.query.filter_by(venid=ven['id']).first()
ven.totalcheckins = ven.totalcheckins.append(ven['stats']['checkinsCount'])
db.session.commit()

よろしくお願いします

4

1 に答える 1

7

本当に Python リストを SQLAlchemy の列として持ちたい場合は、PickleTypeを見てください:

array = db.Column(db.PickleType(mutable=True))

mutable=True列を編集できるようにするには、パラメーターを使用する必要があることに注意してください。SQLAlchemy は変更を自動的に検出し、コミットするとすぐに保存されます。

pickle を人間が判読できるようにしたい場合は、それを json または目的に応じた他のコンバーターと組み合わせることができます。

于 2012-11-27T13:36:36.530 に答える