0
我只寫了一個小網站,使用燒瓶和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))
初始化的.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)')
這看起來不像一個類,但一個元組等等我不能
Geopoint.geopt=.....
db.session.add(Geopoint)
db.session.commit()
在official document只有增加新的對象到數據庫中,所以我真的很困惑的例子更新。
有沒有更新數據的MAGIC語句或者是否有其他地理orm庫可供使用?
讚賞任何答案。