Python koduma başka bir .py dosyasını nasıl çağırabilirim?

Arkadaşlar merhaba kayıt ekranı ve sorgulama ekranından oluşan iki adet .py dosyam var ikisi de aynı klasörde. Yapmak istediğim sorgulama ekranında yeni kayıt oluştur butonuna tıkladığımda kayit.py isimli dosyayı çağırıp açmak istiyorum internette araştırdım fonksiyon çağırma vs var ama py ile yazılmış bir programı çağırmayı göremedim yardımcı olur musunuz?

from .py_dosyan import modülün
Mesela:
X.py ve C.py diye iki dosyan olsun aynı klasörde

C.py:
from x import modül_ismi

Python da yeniyim de şu şekilde yaptığımda pencere açılıyor fakat içinde hiçbir şey yok

def cagir():
   İmport kayit 

Modül dediğiniz şey tam olarak nedir?

dosya1.py:

def start():
isim = “Bu bir test mesajıdır”
return isim

dosya2.py:

from dosya1 import start
start = start()
print(start)

bkz. Soru Sorarken Sikca Dusulen Hatalar #1

Aslında temelde bakarsanız ikisi de ayrı ayrı çalışabilen bir program aslında dediğiniz gibi kayıt programıma def start ekleyince kayıt programımın içinde farklı fonksiyonlar da olduğu için karışıyor. Daha iyi anlatabilmek için 2 programımın kodlarını da aşağıda verdim. Ben bir yerde yanlış yapıyorum sanırım eklenmesi gereken yere ekleyebilir misiniz?

Çağırmak istediğim kod (Kayit.py)

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

# Veritabanı Oluşturma
veritabani = sqlite3.connect("veri.db")
im = veritabani.cursor()
im.execute("CREATE TABLE IF NOT EXISTS arkadaslar(tckimlik TEXT, isim TEXT, soyad TEXT, cinsiyet TEXT, memleket TEXT, adresil TEXT, acikadres TEXT, telno TEXT,  ekbilgiler TEXT)")


# Veritabanı Kayıt Fonksiyonu
def submit():
    # db connect
    veritabani = sqlite3.connect("veri.db")
    im = veritabani.cursor()



    #tablo ekleme
    im.execute("INSERT INTO arkadaslar VALUES(:tckimlik,:isim, :soyad, :cinsiyet, :memleket, :adresil, :acikadres, :telno, :ekbilgiler)",
               {
                   'tckimlik': tckimlik.get(),
                   'isim': isim.get(),
                   'soyad': soyad.get(),
                   'cinsiyet': cinsiyet.get(),
                   'memleket': memleket.get(),
                   'adresil': adresil.get(),
                   'acikadres': acikadres.get(),
                   'telno': telno.get(),
                   'ekbilgiler': ekbilgiler.get('1.0', END)


               })




    # clear text box

    tckimlik.delete(0, END)
    isim.delete(0, END)
    soyad.delete(0, END)
    cinsiyet.delete(0, END)
    memleket.delete(0, END)
    adresil.delete(0, END)
    acikadres.delete(0, END)
    telno.delete(0, END)
    ekbilgiler.delete('1.0', END)




    veritabani.commit()



# Obje Yaratma
pencere = Tk()
arkaplan = PhotoImage(file="veribg.png")
kaydetbuton = PhotoImage(file="kaydetbuton.png")
ikon = PhotoImage(file="isimsizlogo.png")
yuklebuton = PhotoImage(file="yukle.png")
uploadresim = PhotoImage(file="uploadimage.PNG")
cikisbuton = PhotoImage(file="cikis.png")

# Ana Özellikler
pencere.geometry("800x600")
pencere.maxsize(800, 600)
pencere.title("Furkan Private SM Database Systems")
background = Label(pencere,image= arkaplan)
background.place(x = -2, y = 0)
pencere.iconphoto(False, ikon)


# Veri Giriş Pencere Ayarları
etiket3 = tkinter.Label(pencere, 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(pencere, text="tc no", font="Xirod-regular 10", fg="white", bg="#363636")
etiket4.place(x=10, y=65)
tckimlik = tkinter.Entry(pencere, font="Arial 13" , bd=5, bg="#e6c619", width=18)
tckimlik.place(x=10, y=85)
# Veri Giriş 2
etiket5 = tkinter.Label(pencere, text="ad", font="Xirod-regular 10", fg="white", bg="#363636")
etiket5.place(x=200, y=65)
isim = tkinter.Entry(pencere, font="Arial 13" , bd=5 ,bg="#e6c619", width=18)
isim.place(x=200, y=85)
# Veri Giriş 3
etiket6 = tkinter.Label(pencere, text="soyad", font="Xirod-regular 10", fg="white", bg="#363636")
etiket6.place(x=390, y=65)
soyad = tkinter.Entry(pencere,font="Arial 13", bd=5 ,bg="#e6c619", width=18)
soyad.place(x=390, y=85)
# Veri Giriş 4
etiket7 = tkinter.Label(pencere, text="cinsiyet", font="Xirod-regular 10", fg="white", bg="#363636")
etiket7.place(x=580, y=65)
cinsiyet = tkinter.Entry(pencere,font="Arial 13", bd=5 ,bg="#e6c619", width=18)
cinsiyet.place(x=580, y=85)
# Veri Giriş 5
etiket8 = tkinter.Label(pencere, text="memleket", font="Xirod-regular 10", fg="white", bg="#363636")
etiket8.place(x=10, y=150)
memleket = tkinter.Entry(pencere, font="Arial 13",bd=5 ,bg="#e6c619", width=18)
memleket.place(x=10, y=170)
# Veri Giriş 6
etiket9 = tkinter.Label(pencere, text="adres il/ilçe", font="Xirod-regular 10", fg="white", bg="#363636")
etiket9.place(x=200, y=150)
adresil = tkinter.Entry(pencere, font="Arial 13",bd=5 ,bg="#e6c619", width=18)
adresil.place(x=200, y=170)
# Veri Giriş 7
etiket10 = tkinter.Label(pencere, text="açık adres", font="Xirod-regular 10", fg="white", bg="#363636")
etiket10.place(x=390, y=150)
acikadres = tkinter.Entry(pencere, font="Arial 13",bd=5 ,bg="#e6c619", width=18)
acikadres.place(x=390, y=170)
# Veri Giriş 8
etiket11 = tkinter.Label(pencere, text="tel no", font="Xirod-regular 10", fg="white", bg="#363636")
etiket11.place(x=580, y=150)
telno = tkinter.Entry(pencere, font="Arial 13", bd=5  ,bg="#e6c619", width=18)
telno.place(x=580, y=170)

# Veri Giriş 12
etiket15 = tkinter.Label(pencere, text="ek bilgiler", font="Xirod-regular 10", fg="white", bg="#363636")
etiket15.place(x=8, y=230)
ekbilgiler = tkinter.Text(pencere, font="Arial 11",bd=5, bg="#e6c619", height=15, width=28)
ekbilgiler.place(x=8, y=250)




etiket16 = tkinter.Label(pencere, text="resim/dosya yükle", font="Xirod-regular 10", fg="white", bg="#363636")
etiket16.place(x=270, y=270)
yüklemeresim = tkinter.Label(pencere, image=uploadresim, height=182, width=182)
yüklemeresim.place(x=280, y=290)

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

# Kaydet Butonu
submit_btn = tkinter.Button(pencere, bg="#363636", bd=5, activebackground="#e6c619", height=30, width=60,image=kaydetbuton, command=submit )
submit_btn.place(x=550,y=330)

# Çıkış Butonu
cikis = tkinter.Button(pencere, height=30, width=60, bd=5 ,image=cikisbuton, bg="#363636", activebackground="#e6c619", command=pencere.quit)
cikis.place(x=550, y=400)




pencere.mainloop()

Yukarıdaki kodu çağıracağım programım (Sorgu.py)

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

# Veritabanı İşleri

baglan = sqlite3.connect("veri.db")
veri = baglan.cursor()


def bul():
    sayi = 0
    for degisken in veri.execute("SELECT  isim, soyad, tckimlik,cinsiyet, memleket, adresil, acikadres, telno, ekbilgiler FROM arkadaslar"):
        if degisken[0] == giris.get():

            tree.insert("", tkinter.END, values=degisken)
            tree2.insert("", tkinter.END, values=degisken)
            tree3.insert("", tkinter.END, values=degisken)
            textbox.insert('end',  degisken)








    sayi+1



baglan.commit()

def cagir():
    from kayit import



# Obje Yaratma
pencere = Tk()

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




# Resim ekleme Kısmı
arkaplan = PhotoImage(file = "2.png")
ikon = PhotoImage(file="isimsizlogo.png")
sorbuton = PhotoImage(file="button.png")
veriolustur = PhotoImage(file="dataolustur.png")
cikisdugmesi = PhotoImage(file="cikis.png")
sifirla = PhotoImage(file="sifirla.png")


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



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

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

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

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

veributon = tkinter.Button(pencere,height=30, width=200, image=veriolustur,bg="#363636", activebackground="#e6c619")
veributon.place(x=150, y=380)

sfr = tkinter.Button(pencere, height=30, width=60, image=sifirla, bg="#363636", activebackground="#e6c619")
sfr.place(x=220, y=430)




"""style = ttk.Style(pencere)
style.theme_use("alt")
style.configure("Treeview", background="#e6c619",fieldbackground="#363636", foreground="black", font=("Ubuntu", 15), rowheight=25)
style.map("Treeview", background=[("selected", "green")])



tree= ttk.Treeview(pencere, columns=("A", "B", "C","D"), show='headings', height=1)

tree.heading("A", text="AD")
tree.heading("B", text="SOYAD")
tree.heading("C", text="TC KİMLİK")
tree.heading("D", text="CİNSİYET")


tree.column("A", width=130)
tree.column("B", width=130)
tree.column("C", width=130)
tree.column("D", width=130)
tree.pack()




tree2= ttk.Treeview(pencere, columns=("A", "B", "C","D","E","F","G","H"), show='headings', height=1, displaycolumns=("E","F","G","H"))
tree2.heading("E", text="MEMLEKET")
tree2.heading("F", text="ADRES İL/İLÇE")
tree2.heading("G", text="AÇIK ADRES")
tree2.heading("H", text="TELEFON")



tree2.column("E", width=130)
tree2.column("F", width=130)
tree2.column("G", width=160)
tree2.column("H", width=130)
tree2.pack(pady=50)




textbox = tkinter.Text(pencere, height=5, width=50)

textbox.place(x=250, y=300)





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



# Döngü
pencere.mainloop()

import Kayit veya
from Kayit import submit

Kayit dosyasından beklentin nedir. Tek fonksiyon var ve db ye kayıt işlemi yapıyor.

İşine karışmak gibi olmasın bende yeniyim ama
1 tane backend dedikleri dosya oluşturup database işlemlerini orada tanımlayıp, 1 tanede frontend dedikleri arayüz tasarımı yaptığın dosya yapsan işleri kolaylaştırırsın.
Database kısmında db oluşturma, tablo oluşturma, tabloya veri girişi, tablodan veri silme, güncelleme, verileri okuma gibi işleri orada sınıf veya fonksiyonlarla tanımlayıp arayüz yaptığın dosyaya import edersin.

2 Beğeni

Doğru söylüyorsunuz ilk programım olduğu için biraz acemliğime geldi dediğiniz gibi yapsaydım daha kolay olurdu. Kayıt dosyasından beklentim sadece sorgu ekranındaki veri oluştur butonuna bastığımda kayıt ekranının açılması. Yani tekrardan gidip kayit.py yi çalıştırmaktansa bunu tek bir pencere içinden butonla yapmak istiyorum.

veri oluştur butonuna komut işlevi atamamışsınız.

daha sonra yukarıya bu veri_olustur fonksiyonunu tanımlamak lazım.

def veri_olustur():
     pencere = Toplevel()
     arkaplan = PhotoImage(file="veribg.png")
     kaydetbuton = PhotoImage(file="kaydetbuton.png")
     ikon = PhotoImage(file="isimsizlogo.png")
     yuklebuton = PhotoImage(file="yukle.png")
     uploadresim = PhotoImage(file="uploadimage.PNG")
     cikisbuton = PhotoImage(file="cikis.png")

    # Ana Özellikler
    pencere.geometry("800x600")
    pencere.maxsize(800, 600)
    pencere.title("Furkan Private SM Database Systems")
    background = Label(pencere,image= arkaplan)
    background.place(x = -2, y = 0)
    pencere.iconphoto(False, ikon)
    
     

böyle devam ederek kayıt ekranını oluşturacaksın. benim aklıma gelen bu şekil farklı bir yöntem önermek isteyenlerde destek olabilir.

1 Beğeni
1 Beğeni

teşekkürler arkadaşlar attıklarınızı inceleyeceğim.