Python programlama diliyle SqlServer veri tabanına bağlanma ve gerekli veri tabanı işlemlerini gerçekleştrime çok kolaydır. Bu uygulamamızda uyeler tablosunu kullanarak kullanıcı adı ve şifre işlemlerini gerçekleştireceğiz.
from pprint import pprint
from pyodbc import connect
class DBHelper:
def _init_(self, servername, databasename, uid, pwd):
self.db = connect('Driver={SQL Server};'
'Server=%s;'
'Database=%s;'
'uid=%s;'
'pwd=%s;' % (servername, databasename, uid, pwd))
self.cursor = self.db.cursor()
def getUserAnalytics(self, command):
self.cursor.execute(f'{command}')
list = self.cursor.fetchall()
pprint(list)
def getUserList(self):
self.cursor.execute('SELECT * FROM uyeler')
Userlist = self.cursor.fetchall()
pprint(Userlist)
def updateUserData(self, username, password, id: int):
self.cursor.execute(f"UPDATE uyeler SET Username='{username}', Password='{password}' WHERE id='{id}'")
self.cursor.commit()
def addUser(self, username, password):
self.cursor.execute(f"INSERT INTO uyeler VALUES('{username}','{password}')")
self.cursor.commit()
def deleteUser(self, id):
self.cursor.execute(f"DELETE FROM uyeler WHERE id='{id}'")
self.cursor.commit()
def closeDatabase(self):
self.db.close()
Şimdi bu sınıfı kullanan örnek uygulamalarımızı yapalım.
from d47 import DBHelper
if _name_ == '_main_':
SERVERNAME = 'xxxxxx.mssql.somee.com'
DATABASENAME = 'xxxxxx'
UUID = 'xxxxxx'
PWD = 'xxxxxxx'
db = DBHelper(SERVERNAME, DATABASENAME, UUID, PWD)
db.updateUserData('merhaba2', 'selam2', 2)
db.getUserList()
db.getUserAnalytics("SELECT COUNT(*) FROM uyeler")
db.closeDatabase()
Şimdi admin işlemlerini kontrol eden yapıyı düzenleyelim.
from pyodbc import connect
class DBHelper:
def _init_(self, servername, databasename, uid, pwd):
self.db = connect('Driver={SQL Server};'
'Server=%s;'
'Database=%s;'
'uid=%s;'
'pwd=%s;' % (servername, databasename, uid, pwd))
self.cursor = self.db.cursor()
def getUserAnalytics(self, command):
self.cursor.execute(f'{command}')
list = self.cursor.fetchall()
return list[0][0]
def getUserList(self):
self.cursor.execute('SELECT * FROM uyeler')
Userlist = self.cursor.fetchall()
return Userlist
def updateUserData(self, username, password, id: int):
self.cursor.execute(f"UPDATE uyeler SET Username='{username}', Password='{password}' WHERE id='{id}'")
self.cursor.commit()
def addUser(self, username, password):
self.cursor.execute(f"INSERT INTO uyeler VALUES('{username}','{password}')")
self.cursor.commit()
def deleteUser(self, id):
self.cursor.execute(f"DELETE FROM uyeler WHERE id='{id}'")
self.cursor.commit()
def closeDatabase(self):
self.db.close()
Bu işlemi gerçekleştirmek için form sayfasından yararlanacağız.
isUser = db.getUserAnalytics(f"SELECT COUNT(*) FROM uyeler WHERE Username='{username}' and Password='{password}'")
if isUser == 1:
isOwner = db.getUserAnalytics(f"SELECT isAdmin FROM uyeler WHERE Username='{username}' and Password='{password}'")
if isOwner == True:
... #admin paneli açılsın else ise zaten kullanıcı panelidir
QMessageBox.information(self, 'Giriş Başarılı', f'Başarıyla giriş yapıldı.')
else:
QMessageBox.warning(self, 'Giriş Başarısız', 'Lütfen tüm bilgileri doğru giriniz.')