Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 21, 2014 09:37:38

Cheryrg
Зарегистрирован: 2014-10-21
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt4 проверка регистрации в БД

Привет!
Прошу сразу не называть меня идиотом, ибо я просто новичок в питоне и в программирование в целом.
Возможно вопрос покажется глупым, но все же очень прошу помощи.

Вопрос:
Пытаюсь написать окно регистрации в БД Firebird. Путем гугл и изучения книги PyQt имею такой код, в котором разобрался как смог:

#-*-coding: utf-8 -*-
from PyQt4 import QtCore, QtGui, QtSql
import sys
import kinterbasdb
class LoginWindow(QtGui.QWidget):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        
        self.lineEditName = QtGui.QLineEdit()
        self.lineEditDbase = QtGui.QLineEdit()
        self.lineEditPass = QtGui.QLineEdit()
        self.lineEditIp = QtGui.QLineEdit()
        self.lineEditPass.setEchoMode(2)  
        self.buttonOk = QtGui.QPushButton("Ok")              
        self.hbox = QtGui.QHBoxLayout()
        self.hbox.addWidget(self.buttonOk)
        self.form =QtGui.QFormLayout()
        self.form.addRow("Login:", self.lineEditName)
        self.form.addRow("Pass:", self.lineEditPass)
        self.form.addRow("BD:", self.lineEditDbase)
        self.form.addRow("Ip:", self.lineEditIp)
        self.form.addRow(self.hbox)
        self.setLayout(self.form)
        self.lineEditPass.setFocus()
        
        self.buttonOk.clicked.connect(self.on_Ok)
    def on_Ok(self):
       
        
        host = "192.168.1.88:E:\BD\BD1.FDB"
        BDUSER = "XXXX"
        BDPASSWORD = "XXX" 
        #raw_input ("password   ")
        con = kinterbasdb.connect(dsn=host,user=BDUSER,password=BDPASSWORD)
        cur = con.cursor()
        cur.execute('SELECT* FROM TABLE1')
        for row in cur:
            print 'ID', row[0]
            print 'NAME', row[1]
        
        
#Окно для подтверждения закрытия       
    def closeEvent(self, event):
        reply = QtGui.QMessageBox.question(self, 'Message',
            "Are you sure to quit?", QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)
        if reply == QtGui.QMessageBox.Yes:
            event.accept()
        else:
            event.ignore()
app = QtGui.QApplication(sys.argv)
win = LoginWindow()
win.show()              
sys.exit(app.exec_())


Вопрос 1: как организовать проверку логина и пароля БД? Я так понял нужно присвоить значения поля соответствующей переменой. Но как это сделать не могу нагуглить.

Вопрос 2: При неправильном вводе логин\пароль или путь до бд, будут выдаваться ошибки, как эти ошибки разделить и обозначить пользователю?

Вопрос 3: По какой то причине, если я вставляю кнопку “Cancel” и задаю на него подтверждения закрытия, кнопка “Ok” перестает работать. Что это может быть.


Если можно приведите пример кода, или хотя бы дайте ссылку где посмотреть. Заранее спасибо.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version