Python-socketserver&;sqlite3:Can';不要将消息放入数据库
我一直面临着无法将通过服务器发送的数据放入数据库的问题。我使用python的socketserver和sqlite3类作为服务器和数据库 这是我的密码:Python-socketserver&;sqlite3:Can';不要将消息放入数据库,python,sqlite,socketserver,Python,Sqlite,Socketserver,我一直面临着无法将通过服务器发送的数据放入数据库的问题。我使用python的socketserver和sqlite3类作为服务器和数据库 这是我的密码: import socketserver import sqlite3 conn = sqlite3.connect('messages.db', check_same_thread=False) c = conn.cursor() c.execute('CREATE TABLE IF NOT EXIST
import socketserver
import sqlite3
conn = sqlite3.connect('messages.db', check_same_thread=False)
c = conn.cursor()
c.execute('CREATE TABLE IF NOT EXISTS messagesTable(msg BLOB)')
class MyTCPHandler(socketserver.StreamRequestHandler):
def handle(self):
# self.request is the TCP socket connected to the client
self.data = self.request.recv(1024).strip()
print("{} wrote:".format(self.client_address[0]))
print(self.client_address[0]) #the client's ip
print(self.data)
# just send back the same data, but upper-cased
self.request.sendall(self.data.upper())
def put_database(self):
c.execute("INSERT INTO messagesTable(msg) VALUES(?)", self.data)
conn.commit()
if __name__ == "__main__":
HOST, PORT = "localhost", 8888
# Create the server, binding to localhost on port 8888
server = socketserver.TCPServer((HOST, PORT), MyTCPHandler)
database = MyTCPHandler.put_database()
server.serve_forever()
它从客户端很好地发送消息,并设法发回正确的数据,这使我确信服务器至少工作正常。但是,数据似乎没有写入数据库messages.db
我是python新手,非常需要帮助。我的脚本有什么问题吗?或者我需要做什么调整?谢谢。你似乎没有在任何地方调用put_数据库方法。我已经更新了它,你能看一看吗?这没有意义,你确实需要在实际接收数据时调用它吗?所以,我把它放在handle方法上了?如果你想让事情发生在对消息的响应上,那么是的,您需要您的代码在收到消息时触发。