我正在运行一个带有后端 SQLite 数据库的 Web 应用程序,该数据库仅执行读取操作。用户连接到数据库,通过选择命令搜索条目,然后在浏览器中查看结果。但是,选择非常耗时,因为它涉及数百万表行的字符模式匹配。(结果表的大小相当小)。
不同的用户通常会执行完全相同的搜索,因此如果我可以缓存第一次选择的结果,则下一个搜索数据库的用户(同时或更可能是几天后)可以快速取回结果。
我怎样才能在 SQLite 中做到这一点?有我需要使用的编译指示吗?我听说 SQLite 有自动缓存功能,但这似乎没有帮助。请注意,我正在使用托管服务,因此无论如何我都无法重建 SQLite。
任何帮助将非常感激。
使用PyQt或PySide编写代码时,有时Qt和Python都可以使用等效函数(例如,QDir.exists在Qt和os.path.existsPython中).在这些情况下,是否存在使用哪种语言的惯例?
我想知道速度,重构等问题是否与决定有关.
谢谢.
我有一个连接到QTableView的几千行的Sqlite模型.我可以在QTableView中查看行,但是当我滚动到QTableView的底部时,我只能到达前几百行的末尾.如果我继续拉动滚动条按钮,新行会附加到视图中,但我无法轻松滚动到结尾.将所有行附加到视图后,我可以轻松地从上到下滚动而不会出现问题.
这是代码的重要部分(只是标准):
self.db = QtSql.QSqlDatabase.addDatabase("QSQLITE")
self.db.setDatabaseName(dbFileName)
self.model = QtSql.QSqlTableModel(self.db)
self.model.setTable("results")
self.model.select()
self.tableViewResults.setModel(self.model)
Run Code Online (Sandbox Code Playgroud)
我必须错过一些非常简单的事情.有什么建议?
劳伦斯.
我有一个简单的任务。
我想在 Qt 或 PyQt 或 PySide QLabel 中右对齐富文本 (HTML)。QLabel 工作正常,直到我调整小部件的大小,使其小于文本长度。此时,右侧的文本被切断。QLabel 可以正常使用纯文本。事实上,这只是这里问题的简化版本。
在下面的 PyQt 示例中,我列出了数字一到十。即使我调整小部件的大小,我也希望始终看到数字“十”。它适用于纯文本,但不适用于富文本 (HTML)。这是 Qt 中的错误吗?我添加了几个屏幕截图来显示效果。


from PyQt4 import QtGui, QtCore
import sys
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
mw = QtGui.QWidget()
labelPT = QtGui.QLabel()
labelPT.setText('one two three four five six seven eight nine ten')
labelPT.setAlignment(QtCore.Qt.AlignRight)
labelRT = QtGui.QLabel()
labelRT.setText('one two three four <b>five</b> six seven eight nine ten')
labelRT.setAlignment(QtCore.Qt.AlignRight)
vbox = QtGui.QVBoxLayout()
vbox.addWidget(labelPT)
vbox.addWidget(labelRT)
mw.setLayout(vbox)
mw.setMinimumWidth(30)
mw.show()
sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)