NameError hatası alıyorum

Arkadaşlar merhaba yazmış olduğum programda yeni veri oluştur butonuyla yeni bir pencere açıyorum orada gerekli bilgileri doldurduktan sonra kaydet butonuna basınca bu verileri sqlite veritabanına kaydetmek istiyorum fakat kaydet butonuna basınca hata veriyor.

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.2800.0_x64__qbz5n2kfra8p0\lib\tkinter\__init__.py", line 1892, in __call__
    return self.func(*args)
  File "C:\Users\furko\pythonProject1\main.py", line 136, in kayit_yap
    a = tckimlik.get()
NameError: name 'tckimlik' is not defined

Process finished with exit code 0

Bu hatayı nasıl çözebilirim yeni pencere açmak için def fonksiyonu kullandım fonksiyon altına fonksiyon girdiğim için mi böyle oldu acaba yardımcı olursanız çok sevinirim. Kaynak kodum aşağıdadır.

# Import module
import tkinter
from tkinter import *
from tkinter.ttk import *
from tkinter import filedialog
from tkinter import messagebox
import sqlite3

# Veritabanı Oluşturma

vt = sqlite3.connect("sm.db")
im = vt.cursor()
im.execute("create table if not exists insanlar(tc TEXT, adivesoyadi TEXT, cinsiyet TEXT, memleket TEXT, adresilce TEXT, acikadres TEXT, telno TEXT, sosyalmedya TEXT, karakteri TEXT, zaaflari TEXT, ekbilgiler TEXT)")
vt.commit()



# Obje Yaratma
pencere = Tk()

# Ana Özellikler
pencere.geometry("1200x600")
pencere.maxsize(1200, 600)
pencere.title("Furkan Private SM Database Systems")



# Resim ekleme Kısmı
arkaplan = PhotoImage(file = "bakim.png")
ikon = PhotoImage(file="isimsizlogo.png")
sorbuton = PhotoImage(file="button.png")
veriolustur = PhotoImage(file="dataolustur.png")
veriarkaplan = PhotoImage(file="veribg.png")
cikisdugmesi = PhotoImage(file="cikis.png")
uploadresmi = PhotoImage(file="uploadimage.PNG")
yuklebuton = PhotoImage(file="yukle.png")
kaydetbutonu = PhotoImage(file="kaydetbuton.png")

# Arkaplan Resmi
anakatman = Label(pencere, image = arkaplan)
anakatman.place(x = -2, y = 0)


# Mesajlar
def mesaj1(text):
    msg = messagebox.showinfo(text, "Kayıt Başarılı.!")

def mesaj2(text):
    msg = messagebox.showerror(text, "Bu Kişi Zaten Kayıtlı.!")

def mesaj3(text):
    msg = messagebox.showerror(text, "Bu İsimde Kayıt Bulunamadı.!")






# Veri Giriş Pencere Ayarları

def verieklemepenceresi():
    veripenceresi = Toplevel()
    veripenceresi.geometry("800x700")
    veripenceresi.maxsize(800, 700)
    veripenceresi.title("Furkan Database Systems")
    baslik = tkinter.Label(veripenceresi, image= veriarkaplan)
    baslik.pack()
    etiket3 = tkinter.Label(veripenceresi, text="Yeni Kayıt Ekleme Ekranı", font="Xirod-regular", fg="white", bg="#363636")
    etiket3.place(x=200, y=4)
    # Veri Giriş 1
    etiket4 = tkinter.Label(veripenceresi, text="tc no", font="Xirod-regular 10", fg="white", bg="#363636")
    etiket4.place(x=10, y=65)
    tckimlik = tkinter.Entry(veripenceresi, font="Arial 13" , bd=5, bg="#e6c619", width=18)
    tckimlik.place(x=10, y=85)
    # Veri Giriş 2
    etiket5 = tkinter.Label(veripenceresi, text="ad", font="Xirod-regular 10", fg="white", bg="#363636")
    etiket5.place(x=200, y=65)
    isim = tkinter.Entry(veripenceresi, font="Arial 13" , bd=5 ,bg="#e6c619", width=18)
    isim.place(x=200, y=85)
    # Veri Giriş 3
    etiket6 = tkinter.Label(veripenceresi, text="soyad", font="Xirod-regular 10", fg="white", bg="#363636")
    etiket6.place(x=390, y=65)
    soyad = tkinter.Entry(veripenceresi,font="Arial 13", bd=5 ,bg="#e6c619", width=18)
    soyad.place(x=390, y=85)
    # Veri Giriş 4
    etiket7 = tkinter.Label(veripenceresi, text="cinsiyet", font="Xirod-regular 10", fg="white", bg="#363636")
    etiket7.place(x=580, y=65)
    cinsiyet = tkinter.Entry(veripenceresi,font="Arial 13", bd=5 ,bg="#e6c619", width=18)
    cinsiyet.place(x=580, y=85)
    # Veri Giriş 5
    etiket8 = tkinter.Label(veripenceresi, text="memleket", font="Xirod-regular 10", fg="white", bg="#363636")
    etiket8.place(x=10, y=150)
    memleket = tkinter.Entry(veripenceresi, font="Arial 13",bd=5 ,bg="#e6c619", width=18)
    memleket.place(x=10, y=170)
    # Veri Giriş 6
    etiket9 = tkinter.Label(veripenceresi, text="adres il/ilçe", font="Xirod-regular 10", fg="white", bg="#363636")
    etiket9.place(x=200, y=150)
    adresil = tkinter.Entry(veripenceresi, font="Arial 13",bd=5 ,bg="#e6c619", width=18)
    adresil.place(x=200, y=170)
    # Veri Giriş 7
    etiket10 = tkinter.Label(veripenceresi, text="açık adres", font="Xirod-regular 10", fg="white", bg="#363636")
    etiket10.place(x=390, y=150)
    acikadres = tkinter.Entry(veripenceresi, font="Arial 13",bd=5 ,bg="#e6c619", width=18)
    acikadres.place(x=390, y=170)
    # Veri Giriş 8
    etiket11 = tkinter.Label(veripenceresi, text="tel no", font="Xirod-regular 10", fg="white", bg="#363636")
    etiket11.place(x=580, y=150)
    telno = tkinter.Entry(veripenceresi, font="Arial 13", bd=5  ,bg="#e6c619", width=18)
    telno.place(x=580, y=170)
    # Veri Giriş 9
    etiket12 = tkinter.Label(veripenceresi, text="sosyal medya", font="Xirod-regular 10", fg="white", bg="#363636")
    etiket12.place(x=8, y=220)
    sosyalmedya = tkinter.Text(veripenceresi,font="Arial 11", bd=5  ,bg="#e6c619",height=10,width=25)
    sosyalmedya.place(x=8, y=240)
    # Veri Giriş 10
    etiket13 = tkinter.Label(veripenceresi, text="karakteri", font="Xirod-regular 10", fg="white", bg="#363636")
    etiket13.place(x=275, y=220)
    karakteristik = tkinter.Text(veripenceresi, font="Arial 11",bd=5, bg="#e6c619", height=10, width=25)
    karakteristik.place(x=275, y=240)
    # Veri Giriş 11
    etiket14 = tkinter.Label(veripenceresi, text="zaafiyetleri", font="Xirod-regular 10", fg="white", bg="#363636")
    etiket14.place(x=540, y=220)
    zaafiyet = tkinter.Text(veripenceresi, font="Arial 11",bd=5, bg="#e6c619", height=10, width=25)
    zaafiyet.place(x=540, y=240)
    # Veri Giriş 12
    etiket15 = tkinter.Label(veripenceresi, text="ek bilgiler", font="Xirod-regular 10", fg="white", bg="#363636")
    etiket15.place(x=8, y=440)
    ekbilgiler = tkinter.Text(veripenceresi, font="Arial 11",bd=5, bg="#e6c619", height=10, width=25)
    ekbilgiler.place(x=8, y=460)
    # Kaydet Butonu
    kaydetbuton = tkinter.Button(veripenceresi, bg="#363636", bd=5, activebackground="#e6c619", height=40, width=60,image=kaydetbutonu, command=kayit_yap)
    kaydetbuton.place(x=300, y=530)

# Kayıt Yapma Fonksiyonu
def kayit_yap():
    a = tckimlik.get()
    b = isim.get()
    c = cinsiyet.get()
    d = memleket.get()
    e = adresil.get()
    f = acikadres.get()
    g = telno.get()
    h = sosyalmedya.get()
    j = karakteristik.get()
    k = zaafiyet.get()
    l = ekbilgiler.get()

    def degerle():
        im.execute("insert into insanlar values(?,?,?,?,?,?,?,?,?,?,?)", [a,b,c,d,e,f,g,h,j,k,l])
        vt.commit()

    kod=0
    im.execute("""SELECT adivesoyadi FROM insanlar""")
    kontrol=im.fetchall()
    for i in kontrol:
        ad_kontrol = i[0]
        if ad_kontrol ==  a:
            mesaj2("Kayıt Var")
            kod=1

    if kod == 0:
        degerle()
        mesaj1("Kayıt")






    # Upload
    """etiket15 = tkinter.Label(veripenceresi, text="resim/dosya yükle", font="Xirod-regular 10", fg="white", bg="#363636")
    etiket15.place(x=280, y=520)
    yüklemeresim = tkinter.Label(veripenceresi,image=uploadresmi)
    yüklemeresim.place(x=280,y=545)

    def UploadAction(event=None):
        filename = filedialog.askopenfilename()
        print('Selected:', filename)

    uploadbuton = tkinter.Button(veripenceresi, image=yuklebuton, bg="#363636" ,activebackground="#e6c619",command=UploadAction)
    uploadbuton.place(x=350,y=760)"""




# Yazı Kısmı
etiket1= tkinter.Label(anakatman, text="Hoşgeldin Sahip..!", font="Xirod-Regular", fg="white", bg="#363636")
etiket1.place(y=255, x=460)
etiket2= tkinter.Label(anakatman, text="Sorgulanacak Kişi:", font="Xirod-Regular 10", fg="white", bg="#363636")
etiket2.place(y=330, x=503)

# Arama Çubuğu
giris = tkinter.Entry(pencere, bg="#e6c619",font="Arial 13" ,fg="black" ,bd=8,width=27)
giris.place(x=470, y=350)

# Butonlar
btn = tkinter.Button(pencere, height=30, width=30, bd=3 ,bg="#363636",image= sorbuton, activebackground="#e6c619",command=Entry)
btn.place(x=735 ,y=350)

cikis = tkinter.Button(pencere, height=30, width=60, image=cikisdugmesi, bg="#363636", activebackground="#e6c619", command=pencere.quit)
cikis.place(x=580, y=480)

btn2 = tkinter.Button(pencere,height=30, width=200, image=veriolustur,bg="#363636", activebackground="#e6c619", command=verieklemepenceresi)
btn2.place(x=510, y=430)

# Pencere Üst İkonu
pencere.iconphoto(False, ikon)



# Döngü
pencere.mainloop()

çok uğraştırır bu. db kısmını ve gui kısmını ayrı yap.

gui kısmında;
from tkinter import * dersen
pencere = Tk()
pencere.geometry(“boyutlandır işte”)
pencere.title(“başlık”)

label ve entryleri ben şöyle yapıyorum.
isim_lbl = Label(pencere, text=“isim”, font=“fontu girersin”)
isim_lbl.pack / grid / place hangisi ise

isim_ent_var —> bu kısımda lazım sana kayıt aşamasında olmayabilir ama kayıtları güncelleme düzenleme aşamasında db den gelen veriyi gui ye aktarmak için lazım olur
isim_ent = Entry(pencere, textvariable=isim_entry_var)
isim_ent.pack/place/grid

pencere.mainloop()

from tkinter import as tk dersen label entry button oluşturmakta tk ön adınıda yazman lazım
pencere = tk.Tk()

buton1 = tk.Button(pencere) gibi.

ilk önce arayüzü güzel tasarla.
label entry adları yaptığı iş ile ilgili olsun. etiekt3 etiket4 anlaşılmıyor hangi yerleri temsil ettiği