は、私はちょうどフラスコとGeoalchemy2を使用して、いくつかの空間データを表示するように小さなウェブサイトを作成します。今私はいくつかの新しい空間レコード(例えば、ポイント)を私のpostgresqlデータベースに挿入することができますが、私はそれらを更新したいときにいくつかの問題があります。Geoalchemy2を使用してポイント(点など)を更新するにはどうすればよいですか?
私のコードは以下の通りです。
Model.py:
class Geopoint(db.Model):
"""point class"""
__tablename__ = 'geo_point'
ptid = db.Column(db.Integer, primary_key=True)
quiztime = db.Column(db.Numeric)
geopt = db.Column(Geography(geometry_type='POINT', srid=4326))
のinitの.py:
db = SQLAlchemy()
geo_engine = create_engine('postgresql://postgres:[email protected]/database', echo=True)
view.py:
geo_session_class = sessionmaker(bind=geo_engine)
geo_session = geo_session_class()
if request.method == 'POST':
if geo_type == 'POINT':
pt_res = geo_session.query(
Geopoint.ptid,
Geopoint.quiztime,
Geopoint.geopt.ST_AsText()
).filter_by(ptid=geo_id).first()
if pt_res:
print pt_res
else:
geo_session.add(
Geopoint(
quiztime=time.time(),
geopt=geo_type + '(' + geo_coord.encode('utf-8') + ')'
)
)
geo_session.commit()
私は新しいポイントのレコードを追加するときに私のコードは動作します。
私は、更新部分の私のコードが印刷された結果を返す存在していたポイントを編集
は(私はそれを記述する方法を知りたい。):(4L, Decimal('1508430387.581'), u'POINT(120.057, 30.262)')
クラスが、そのタプルのように見えません私は本当に混乱していますので、データベースに新しいオブジェクトを追加するための唯一の例があるofficial documentで
Geopoint.geopt=.....
db.session.add(Geopoint)
db.session.commit()
でそれを更新することはできません。
データを更新するための任意のMAGIC文はありますか使用するために、他の地理ORMライブラリはありますか?すべての答えを
感謝。