--- Veritabanı bağlantısını bir kullanıcı girişi projesi ile sağlayalım. Veritabanına kullanıcı adı ve şifre bilgileri db browser for sqlite programı ile kendiniz girebilirsiniz, aşağıdaki projede herhangi bir bilgi girişi olmayacak. Var olan bilgileri sorgulayacağız. ---
--- Yine pencere classımızı ve fonksiyonlarımızı yazmışız. baglanti_olustur fonksiyonu ile veritabanımızın bağlantısını sağlamışız ve tabloyu oluşturmuşuz. ---
--- giris butonunun bir fonksiyonu olarak da login fonksiyonunu yazmışız. İçinde sql sorgularımızı kullanmışız. Bu yazı da aşağıdaki kodları dikkatli inceleyin. Varsa sorularınızı bekliyorum. ---
import sys
from PyQt5 import QtWidgets
import sqlite3
class Pencere(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.baglanti_olustur()
self.init_ui()
def baglanti_olustur(self):
baglanti = sqlite3.connect("database.db")
self.cursor = baglanti.cursor()
self.cursor.execute("CREATE TABLE IF NOT EXISTS üyeler (kullanıcı_adı TEXT,parola TEXT)")
baglanti.commit()
def init_ui(self):
self.kullanici_adi = QtWidgets.QLineEdit()
self.parola = QtWidgets.QLineEdit()
self.parola.setEchoMode(QtWidgets.QLineEdit.Password) # görünmez parola için gerekli dikkat !!
self.giris = QtWidgets.QPushButton("Giriş Yap")
self.yazi_alani = QtWidgets.QLabel()
v_box = QtWidgets.QVBoxLayout()
v_box.addWidget(self.kullanici_adi)
v_box.addWidget(self.parola)
v_box.addWidget(self.yazi_alani)
v_box.addStretch()
v_box.addWidget(self.giris)
h_box = QtWidgets.QHBoxLayout()
h_box.addStretch()
h_box.addLayout(v_box)
h_box.addStretch()
self.setLayout(h_box)
self.setWindowTitle("Kullanıcı Girişi")
self.giris.clicked.connect(self.login)
self.show()
def login(self):
adi = self.kullanici_adi.text()
par = self.parola.text()
self.cursor.execute("SELECT * FROM üyeler WHERE kullanıcı_adı = ? and parola = ?",(adi,par))
data = self.cursor.fetchall() # Burada tablodaki bilgileri liste haline getirdik.
if len(data) == 0:
self.yazi_alani.setText("Böyle Bir Kullanıcı Yok!\nLütfen Tekrar Deneyin.")
else:
self.yazi_alani.setText("Giriş Başarılı!")
app = QtWidgets.QApplication(sys.argv)
pencere = Pencere()
sys.exit(app.exec_())
