作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我构建了一个 SQLite 扩展(即 .so 库),我想使用 SQLAlchemy 在我的应用程序中使用它。这是一个 Flask 应用程序,但我认为 Flask 在这里不起作用。
该扩展可以从 CLI 加载并且似乎可以工作:
$ sqlite3
SQLite version 3.20.1 2017-08-24 16:21:36
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> .load ./libSqliteIcu.so
import sqlite3
con = sqlite3.connect(":memory:")
# enable extension loading
con.enable_load_extension(True)
# Load the fulltext search extension
con.execute("select load_extension('./fts3.so')")
db
访问数据库:
db = flask_sqlalchemy.SQLAlchemy()
db.session.execute('select load_extension("./libsqliteicu.so")')
enable_load_extension()
或以其他方式成功加载扩展?
最佳答案
经过一些搜索和测试,并基于各种来源,这对我有用。关于代码质量,我只能说这么多。我发布它只是因为它可能对某人有所帮助。如果您发现问题,请不要犹豫发表评论。
from sqlalchemy.event import listen
# initialization routine
# app: this Flask application
# db: the database, see the question
db_collate = 'sk_SK.UTF-8' # Slovak language for example
def load_extension(dbapi_conn, unused):
dbapi_conn.enable_load_extension(True)
dbapi_conn.load_extension('/path/to/libSqliteIcu.so')
dbapi_conn.enable_load_extension(False)
dbapi_conn.execute("SELECT icu_load_collation(?, 'ICU_EXT_1')", (db_collate,))
with app.app_context():
listen(db.engine, 'connect', load_extension)
from sqlalchemy.sql.expression import collate
...query.order_by(collate(Table.column, 'ICU_EXT_1'))
ICU_EXT_1
是完全任意的。
关于python - 如何在 SQLAlchemy 中加载 SQLite3 扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48851097/
我正在开发一个需要能够平均三个数字的 Facebook 应用程序。但是,它总是返回 0 作为答案。这是我的代码: $y = 100; $n = 250; $m = 300; $number = ($y
我只是无法弄清楚这一点,也找不到任何对我来说有意义的类似问题。我的问题:我从数据库中提取记录,并在我的网页上以每个面板 12 条的倍数显示它们。因此,我需要知道有多少个面板可以使用 JavaScrip
我是一名优秀的程序员,十分优秀!