- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 jQuery/AJAX 在 PHP 中创建了一个聊天应用程序。现在我正在尝试创建一个带有 GUI (Tkinter) 的 Python (2.7.3) 应用程序,它将用于查看和管理聊天。
我有一个 MySQL 数据库,用于存储用户和聊天信息。
在浏览器上,通过使用 setInterval 和 AJAX 调用,我可以在不刷新页面的情况下获取新消息。
在 Python 应用程序中,我使用“after”来调用一个函数来检索 setInterval 等信息。我认为它的工作。但是,我无法获取在浏览器上提交的新条目。
如何在不重启应用程序的情况下获取新提交的条目(在 Python 应用程序启动后)?
我正在使用 MySQLdb 模块访问和更改数据库,并且我正在本地主机上工作。
作为我尝试做的例子,我发布了我的 get_messages 函数:
def get_messages(sohbet_id, messages_name):
messages_name.delete(1.0, END) # Remove the content of Text widget
sql = "SELECT *
FROM ileti
WHERE sohbet_id='" + str(sohbet_id) + "'
ORDER BY created ASC"
cursor.execute(sql)
result = cursor.fetchall() # Fetch all the chat info
chat = ""
for i in result:
name = chatter_name(i[1])
time = datetime.fromtimestamp(i[4]).strftime("%H:%M:%S")
chat += time + " " + str(name) + ": " + str(i[3]) + "\n" # Create a string of chat messages
messages_name.insert(END, chat) # Insert all the chat messages to the Text widget
messages_name.yview(END) # Scroll it down so that the latest message can be seen
messages_name.after(1000, lambda: get_messages(sohbet_id, messages_name)) # Run this again after 1 second
return
编辑:更多信息:我实际上在函数中创建小部件。当应用程序启动时,只有主框架在那里,我调用一个函数来创建第一个选项卡(所有聊天的摘要),然后该函数调用另一个打开新选项卡(个人)聊天的函数。在那些单独的聊天选项卡中,我有这个 get_messages 函数来查询属于该聊天(或选项卡)的聊天消息。在上面的函数中,messages_name 实际上是一个文本小部件。我将它传递给函数,因为我正在那个函数中修改它(我找不到任何其他方法)。当调用 get_messages 时,不会出现新行。获取它们的唯一方法是重新启动应用程序。就像当应用程序启动时,它会从该实例的数据库中获取所有数据,仅此而已。我唯一知道的是,我将需要类似 PHP 和 jQuery/AJAX 的方法来访问数据库并获取行而不刷新页面。
最佳答案
使用获取和插入数据的方法连接到类中的数据库解决了我的问题。
这就是类:
class DBConnection(object):
def __init__(self, DB_HOST, DB_PORT, DB_USER, DB_PASSWORD, DB_NAME):
self.host = DB_HOST
self.port = DB_PORT
self.name = DB_NAME
self.user = DB_USER
self.password = DB_PASSWORD
self.con = None
def connect_db(self):
if self.con is None:
self.con = MySQLdb.connect(host = self.host,
port = self.port,
db = self.name,
user = self.user,
passwd = self.password)
self.con.set_character_set("utf8")
return self.con
def fetch_db(self, query):
self.query = query
self.cursor = self.con.cursor()
self.cursor.execute("SET NAMES utf8;")
self.cursor.execute("SET CHARACTER SET utf8;")
self.cursor.execute("SET character_set_connection=utf8;")
self.cursor.execute(self.query)
self.result = self.cursor.fetchall()
return self.result
def insert_db(self, query):
self.query = query
self.cursor = self.con.cursor()
self.cursor.execute("SET NAMES utf8;")
self.cursor.execute("SET CHARACTER SET utf8;")
self.cursor.execute("SET character_set_connection=utf8;")
self.cursor.execute(self.query)
self.con.commit()
return
这就是我的连接方式(在 mainloop 之前):
DBC = DBConnection('localhost',3306,'root','','sohbet')
con = DBC.connect_db()
这就是我查询的方式:
result = DBC.fetch_db("SELECT * FROM ileti WHERE sohbet_id='" + str(sohbet_id) + "' ORDER BY created ASC")
但是,我需要检查 mmgp 告诉我的查询方式。
关于python - 在 Python 中无需重启应用程序即可检索 MySQL 数据库的新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14790892/
我的问题是如何在 python 中创建一个简单的数据库。我的例子是: User = { 'Name' : {'Firstname', 'Lastname'}, 'Address' : {'Street
我需要创建一个与远程数据库链接的应用程序! mysql 是最好的解决方案吗? Sqlite 是唯一的本地解决方案吗? 我使用下面的方法,我想知道它是否是最好的方法! NSString *evento
给定两台 MySQL 服务器,一台本地,一台远程。两者都有一个包含表 bohica 的数据库 foobar。本地服务器定义了用户 'myadmin'@'%' 和 'myadmin'@'localhos
我有以下灵活的搜索查询 Select {vt:code},{vt:productcode},{vw:code},{vw:productcode} from {abcd AS vt JOIN wxyz
好吧,我的电脑开始运行有点缓慢,所以我重置了 Windows,保留了我的文件。因为我的大脑还没有打开,所以我忘记事先备份我的 MySQL 数据库。我仍然拥有所有原始文件,因此我实际上仍然拥有数据库,但
如何将我的 Access 数据库 (.accdb) 转换为 SQLite 数据库 (.sqlite)? 请,任何帮助将不胜感激。 最佳答案 1)如果要转换 db 的结构,则应使用任何 DB 建模工具:
系统检查发现了一些问题: 警告:?:(mysql.W002)未为数据库连接“默认”设置 MySQL 严格模式 提示:MySQL 的严格模式通过将警告升级为错误来修复 MySQL 中的许多数据完整性问题
系统检查发现了一些问题: 警告:?:(mysql.W002)未为数据库连接“默认”设置 MySQL 严格模式 提示:MySQL 的严格模式通过将警告升级为错误来修复 MySQL 中的许多数据完整性问题
我想在相同的 phonegap 应用程序中使用 android 数据库。 更多说明: 我创建了 phonegap 应用程序,但 phonegap 应用程序不支持服务,所以我们已经在 java 中为 a
Time Tracker function clock() { var mytime = new Date(); var seconds
我需要在现有项目上实现一些事件的显示。我无法更改数据库结构。 在我的 Controller 中,我(从 ajax 请求)传递了一个时间戳,并且我需要显示之前的 8 个事件。因此,如果时间戳是(转换后)
我有一个可以收集和显示各种测量值的产品(不会详细介绍)。正如人们所期望的那样,显示部分是一个数据库+建立在其之上的网站(使用 Symfony)。 但是,我们可能还会创建一个 API 来向第三方公开数据
我们将 SQL Server 从 Azure VM 迁移到 Azure SQL 数据库。 Azure VM 为 DS2_V2、2 核、7GB RAM、最大 6400 IOPS Azure SQL 数据
我正在开发一个使用 MongoDB 数据库的程序,但我想问在通过 Java 执行 SQL 时是否可以使用内部数据库进行测试,例如 H2? 最佳答案 你可以尝试使用Testcontainers Test
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 已关闭 9 年前。 此问题似乎与 a specific programming problem, a sof
我正在尝试使用 MSI 身份验证(无需用户名和密码)从 Azure 机器学习服务连接 Azure SQL 数据库。 我正在尝试在 Azure 机器学习服务上建立机器学习模型,目的是我需要数据,这就是我
我在我的 MySQL 数据库中使用这个查询来查找 my_column 不为空的所有行: SELECT * FROM my_table WHERE my_column != ""; 不幸的是,许多行在
我有那个基地:http://sqlfiddle.com/#!2/e5a24/2这是 WordPress 默认模式的简写。我已经删除了该示例不需要的字段。 如您所见,我的结果是“类别 1”的两倍。我喜欢
我有一张这样的 table : mysql> select * from users; +--------+----------+------------+-----------+ | userid
我有表: CREATE TABLE IF NOT EXISTS `category` ( `id` int(11) NOT NULL, `name` varchar(255) NOT NULL
我是一名优秀的程序员,十分优秀!