Доступ к базе данных сервера MySQL средствами модуля MySQLdb
Для работы понадобятся сервер mySQL, модуль MySQLdb и база данных, созданная в примере "Использование модуля MySQLdb".
1. Средствами программы designer создаем форму. Соединений "сигнал-слот" в форме не выполняем, создадим такое соединение в программном коде. При создании формы даем виджетам имена как на рисунке.
2. После двойного щелчка на таблице устанавливаем для нее две колонки и удаляем все строки:
Сохраняем результаты в файл "form1.ui".
3. С помощью pyuic из файла form1.ui генерируем form1.py и реализуем производный класс формы Form1Impl с функциями доступа к базе данных в файле form1impl.py:
# -*- coding: utf-8 -*-
from form1 import *
from MySQLdb import connections
class Form1Impl(Form1):
def __init__(self):
Form1.__init__(self)
self.connect(self.pushButton,SIGNAL("pressed()"),self.SlotInsert)
self.db=connections.Connection(db='test', host='localhost', user='cetus')
self.curs=self.db.cursor()
self.Select()
def Select(self):
row=self.curs.execute("SELECT * from device;")
self.table.setNumRows(row)
rw=self.curs.fetchone()
for i in range(row):
self.table.setText(i,0,rw[1])
self.table.setText(i,1,str(rw[2]))
rw=self.curs.fetchone()
def SlotInsert(self):
row=self.curs.execute("INSERT INTO device VALUES(0,'%s','%s')" % \
(self.lineEditName.text(),self.lineEditCost.text()))
self.Select()
Команда "self.connect(self.pushButton,SIGNAL("pressed()"),self.SlotInsert)" назначает сигналу "pressed()" кнопки обработчик "SlotInsert".
4. Добавляем модуль "main.py".
#!/usr/bin/python
import sys
from form1impl import *
app=QApplication(sys.argv)
form=Form1Impl()
app.setMainWidget(form)
form.show()
app.exec_loop()
5. Устанавливаем для main.py право на выполнение. Выполняем.
Источники:
cetus.com.ua
|
ПОМОЩЬ САЙТУ :
|
|
|