Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何获得';实时';来自数据库PyQt4的数据_Python_Django_Pyqt_Pyqt4 - Fatal编程技术网

Python 如何获得';实时';来自数据库PyQt4的数据

Python 如何获得';实时';来自数据库PyQt4的数据,python,django,pyqt,pyqt4,Python,Django,Pyqt,Pyqt4,在开始之前,我必须承认我只是一名中级Python开发人员,所以我希望我的问题不会受到任何反对 我正在为客户端使用Python和PyQt4构建一个医院系统,它通过API与基于Django的服务器进行通信。多个客户端将与服务器通信。该系统基于角色,因此客户端为每个角色显示不同的界面,例如患者注册、分诊、医生办公桌等 我正在努力解决的问题是如何处理排队的病人。每位医生都应该能够从自己的办公桌上查看排队的患者。在数据库中,我有一个处理这些记录的表patient_队列。显示表中当前的信息非常简单,但是,我

在开始之前,我必须承认我只是一名中级Python开发人员,所以我希望我的问题不会受到任何反对

我正在为客户端使用Python和PyQt4构建一个医院系统,它通过API与基于Django的服务器进行通信。多个客户端将与服务器通信。该系统基于角色,因此客户端为每个角色显示不同的界面,例如患者注册、分诊、医生办公桌等

我正在努力解决的问题是如何处理排队的病人。每位医生都应该能够从自己的办公桌上查看排队的患者。在数据库中,我有一个处理这些记录的表patient_队列。显示表中当前的信息非常简单,但是,我应该如何使添加到patient_queue表中的任何新记录自动显示在医生队列中?我如何确保医生从数据库中获得最新数据,而不必定期进行查询之类的黑客行为

谢谢。

您可以使用pyqt,它可以用作treeview、tableview等小部件的源代码。 首先创建一个数据库连接。例如sqlite:

db = QtSql.QSqlDatabase.addDatabase('QSQLITE')
db.setDatabaseName('database_name.db')
model = QtSql.QSqlTableModel()
model.setTable('database_table_name')
model.setEditStrategy(QtSql.QSqlTableModel.OnManualSubmit)
model.select()  
这里我用的是tableview。您可以使用其他视图,例如treeview

self.tableView = QtGui.QTableView()
self.tableView.setModel(self.model)

我没有比你做的更多的经验(可能少得多),但是我认为你应该考虑运行另一个服务器(除了Django服务器),所有的客户端都会连接到这些服务器,而使用Django API,他们将向服务器发送消息,这反过来将更新数据库(通过Django API,或者直接),并提醒其他客户端发生了更改(很像聊天应用程序)。如果你不打算使用WEB接口,你可能还想用一个持久的TCP服务器来替换HTTP服务器(和HTTP API),比如扭曲。我只是提出了一个建议,你可能想考虑一下,没有什么可以被认为是“正确的方式”来做你想问的或者……谢谢你RB14。万一情况变得更糟,我就得这么做。但是我仍然希望有一个更简单的解决方案。我认为运行一个单独的Tornado服务器来支持对特定模型的长时间轮询就足够了。但让我们拭目以待,看看是否能找到更好的解决方案。我没有使用django,但它似乎支持向客户推送数据(搜索“django推送数据”),您能解释一下为什么这还不够吗?类似于@JoelC,网上没有太多关于示例代码的详细信息。你必须参考这本书。我在答案中加了一个例子。希望能有帮助。