Also, um das ganze hier jetzt mal zeigen zu können, ist hier mal mein Code (ich weiß, dass der sehr durcheinander programmiert ist!):
Code: Alles auswählen
import MySQLdb
root = Tk()
root.title('Chatten mit Python')
textfenster = Text(root,width=90)
textfenster.pack(fill=BOTH,expand=YES)
eingabe = Entry(root,width=60)
eingabe.pack(side=LEFT,fill=BOTH,expand=YES)
def info():
textfenster.insert(END,'\nVersion 0.5' + eingabe.get())
def senden():
cursor = mysql.cursor()
cursor.execute("""INSERT INTO test_chat (text) VALUES (eingabe.get())""")
def ende():
root.destroy()
but1 = Button(root,text='Senden', command = senden)
but1.pack(side = LEFT,expand=NO)
but3 = Button(root,text='Info', command = info)
but3.pack(side = LEFT,expand=NO)
but4 = Button(root,text='Beenden', command = ende)
but4.pack(side = LEFT,expand=NO)
verbindung = 1
if verbindung == 1:
mysql_opts = {
'host': "tmfdsm.incredispace.eu",
'user': "tmfdsm",
'pass': "passwort",
'db': "tmfdsm"
}
mysql = MySQLdb.connect(mysql_opts['host'], mysql_opts['user'], mysql_opts['pass'], mysql_opts['db'])
mysql.apilevel = "2.0"
mysql.threadsafety = 2
mysql.paramstyle = "format"
if verbindung == 1:
cursor = mysql.cursor()
cursor.execute("SELECT text FROM `test_chat`")
products = cursor.fetchall()
textfenster.insert(END, products)
root.mainloop()
Ich habe jetzt das Zeil, einen kleinen Chat per MySQL zu bauen. Also erstmal zur Frage 1:
Hier ist die genaue Fehlermeldung:
Code: Alles auswählen
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python26\lib\lib-tk\Tkinter.py", line 1410, in __call__
return self.func(*args)
File "C:\Python26\test", line 21, in senden
cursor.execute("""INSERT INTO test_chat (text) VALUES (eingabe.get())""")
File "C:\Python26\lib\site-packages\MySQLdb\cursors.py", line 166, in execute
self.errorhandler(self, exc, value)
File "C:\Python26\lib\site-packages\MySQLdb\connections.py", line 35, in defaulterrorhandler
raise errorclass, errorvalue
OperationalError: (1305, 'FUNCTION eingabe.get does not exist')
Jetzt zu Frage 2:
Ich habe ja diese Zeilen:
Code: Alles auswählen
if verbindung == 1:
cursor = mysql.cursor()
cursor.execute("SELECT text FROM `test_chat`")
products = cursor.fetchall()
textfenster.insert(END, products)
Diese sollen jetzt JEDES MAL durchlaufen werden. Also müsste ja theoretisch bei jedem durchlauf des Programms der Text wieder aktualisiert werden müssen. Wenn ich das Programm allerdings laufen lasse und derweil Manuell etwas in die Datenbank eintrage, dass erscheint das nicht direkt in dem Textfenster.[/quote]