Python中geoalchemy2的spatialite后端

2024-09-26 17:59:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用geoalchemy2来SQLITE/spatialite。根据link,这似乎是可能的。在

我的问题来自于定制引擎。在

到目前为止我所拥有的:

from flask_sqlalchemy import SQLAlchemy
from geoalchemy2 import Geometry
#and other imports...

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////Users/cricket/Documents/peas project/open-peas/localapp/test.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
app.config['SQLALCHEMY_ECHO'] = True

db = SQLAlchemy(app)

class Polygon(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(64), unique=True)
    point = db.Column(Geometry("POLYGON"))

@app.before_first_request
def init_request():
    db.create_all()

当我启动脚本时,我收到以下消息:

^{pr2}$

你知道我怎么解决这个问题吗?在


Tags: namefromimportconfigtrueappdbsqlite
1条回答
网友
1楼 · 发布于 2024-09-26 17:59:05

我也有同样的问题,花了一段时间才解决。有很多层(SQLAlchemy,Flask,SQLite,spacealite,Flask的SQLAlchemy扩展,…)一起工作。希望这有助于:

from sqlalchemy import event

db = SQLAlchemy(app)

@event.listens_for(db.engine, "connect")
def load_spatialite(dbapi_conn, connection_record):
  # From https://geoalchemy-2.readthedocs.io/en/latest/spatialite_tutorial.html
  dbapi_conn.enable_load_extension(True)
  dbapi_conn.load_extension('/usr/lib/x86_64-linux-gnu/mod_spatialite.so')

相关问题 更多 >

    热门问题