İçeriğe geç

Python SQLite Form Kullanıcı Girişi ve Kullanıcı Kaydı

Kütüphanelerimizi ekliyoruz.

from tkinter import *
import sqlite3

Formumuzu oluşturuyoruz, veri tabanını tanımlıyoruz.

pencere = Tk()
con = sqlite3.connect("kullanicilar.db")
cursor = con.cursor()

Veri tabanımızı oluşturuyoruz.

def VTOlustur():
    cursor.execute("CREATE TABLE IF NOT EXISTS admin (kadi TEXT,sifre TEXT)")

Kodu çalıştırıyoruz.

VTOlustur()

Kod çalışırsa aşağıdaki uyarıyı almalıyız

Veritabanımız dosyaların içinde gözükmeli

Ben veritabanı oluşturma kısmını yorum satırına çevireceğim. Kodun son hali bu şekilde.

from tkinter import *
import sqlite3

pencere = Tk()
con = sqlite3.connect("kullanicilar.db")
cursor = con.cursor()
"""
def VTOlustur():
    cursor.execute("CREATE TABLE IF NOT EXISTS admin (kadi TEXT,sifre TEXT)")
VTOlustur()
"""

Ben ilk örnek olacağı için kayıt için farklı textboxlar kullanmayacağım iki buton ile kayıt yapma ve giriş yapacağım.

kAdi = Label(pencere,text= "kullanıcı Adı") #Kullanıcı Adı Label
kAdi.grid(row=0,column=0)
kAdiGiris = Entry(pencere,width="8") # Kullanıcı Adı Textbox
kAdiGiris.grid(row=0,column=1)
parola = Label(pencere,text="Şifreniz:") #Parola Label
parola.grid(row=1,column=0)
parolaGiris=Entry(pencere,width="8",show="*") # Parola Textbox
parolaGiris.grid(row=1,column=1)
giris = Button(pencere,text="giriş") #Giriş Butonu
giris.grid(row=3,column=0)
kayitOl = Button(pencere,text="Kayıt Ol") # Kayıt Ol Butonu
kayitOl.grid(row=3,column=1)
girisDurmu = Label(pencere,text="") # Giriş Yapıldı Giriş Yapılamadı ve Kayıt Olundu Yazacak Label
girisDurmu.grid(row=4,column=1)

Kayıt olma kodunu yazıyoruz.

def kayitOl():
    parola = parolaGiris.get()
    kAdi = kAdiGiris.get()
    cursor.execute("INSERT INTO admin (kadi,sifre) VALUES (?,?)", (kAdi, parola))
    con.commit()
    girisDurmu.config(text="Başarılı Kayıt")

Kayıt ol butonunu düzenliyoruz.

kayitOl = Button(pencere,text="Kayıt Ol",command=kayitOl)

Kod çalışıyorsa aşağıdaki gibi kayıt olundu yazması lazım.

Giriş yapma kodunu yazıyoruz.

def giris():
    parola =  parolaGiris.get()
    kAdi = kAdiGiris.get()
    if parola == "" or kAdi == "":
        girisDurmu.config(text="alanları Doldurun")
    else:
        cursor.execute("SELECT * FROM `admin` WHERE `kadi` = ? AND `sifre` = ?", (kAdi, parola))
        if cursor.fetchone() is not None:
            girisDurmu.config(text="Başarılı giriş")
        else:
            girisDurmu.config(text="Hatalı giriş")

Giriş yap butonunu düzenliyoruz

giris = Button(pencere,text="giriş",command=giris)

Kod çalışıyorsa aşağıdaki gibi kayıt varsa ve doğru ise Başarılı giriş yoksa veya hatalıysa Hatalı giriş yazmalı.

Kodumuzun tamamı.

from tkinter import *
import sqlite3
pencere = Tk()
con = sqlite3.connect("kullanicilar.db")
cursor = con.cursor()
"""
def VTOlustur():
    cursor.execute("CREATE TABLE IF NOT EXISTS admin (kadi TEXT,sifre TEXT)")
VTOlustur()
"""
def giris():
    parola =  parolaGiris.get()
    kAdi = kAdiGiris.get()
    if parola == "" or kAdi == "":
        girisDurmu.config(text="alanları Doldurun")
    else:
        cursor.execute("SELECT * FROM `admin` WHERE `kadi` = ? AND `sifre` = ?", (kAdi, parola))
        if cursor.fetchone() is not None:
            girisDurmu.config(text="Başarılı giriş")
        else:
            girisDurmu.config(text="Hatalı giriş")
def kayitOl():
    parola = parolaGiris.get()
    kAdi = kAdiGiris.get()
    cursor.execute("INSERT INTO admin (kadi,sifre) VALUES (?,?)", (kAdi, parola))
    con.commit()
    girisDurmu.config(text="Başarılı Kayıt")
    
kAdi = Label(pencere,text= "kullanıcı Adı")
kAdi.grid(row=0,column=0)
kAdiGiris = Entry(pencere,width="8")
kAdiGiris.grid(row=0,column=1)
parola = Label(pencere,text="Şifreniz:")
parola.grid(row=1,column=0)
parolaGiris=Entry(pencere,width="8",show="*")
parolaGiris.grid(row=1,column=1)
giris = Button(pencere,text="giriş",command=giris)
giris.grid(row=3,column=0)
kayitOl = Button(pencere,text="Kayıt Ol",command=kayitOl)
kayitOl.grid(row=3,column=1)
girisDurmu = Label(pencere,text="")
girisDurmu.grid(row=4,column=1)
pencere.mainloop()

Projeyi indirmek için tıklayınız.

Kategori:PythonSQLite

İlk Yorumu Siz Yapın

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir