• 18-07-2015, 01:09:19
    #1
    Merhaba arkadaşlar ben Can,
    Aramız limoni, kol kırıldı yen içinde kaldı misali. Bende bu yüzden şu aralar kafamı fazla Python'a sardım. Piyasada bakınıyorum R10.net 'de bu kategoriye uğrayan yok onu geçtim Türkçe kaynak fazla yok. Bende yabancı kaynaklardan araştırıyorum sürekli. Ya da youtube'dan bakıyorum.

    Öğrendiklerimi size burada aktaracağım. Konulara görsel demolarda ekleyeceğim.
    Bu konumda sizlere python ile üye giriş paneli yapacağız.

    Tk ile sistemi yapacağız. mainloop() ile sistemi görsel olarak ekrana basacağız.
    from Tkinter import *
    Eğer mainloop veya Tkinter kullanmazsak sistem idle üstünden okutulur.

    Panelin Özellikleri Neler?
    - Tanımladığımız kullanıcı var. Bu kullanıcı id-şifresi ile giriş yapabiliyoruz sisteme.
    - Sisteme 3 defadan fazla yanlış bilgi girersek 5 saniye boyunca girişimizi engelliyor.
    - Üye oturumundan sonraki sayfayı şekillendirebilmekteyiz.



    Öncelikle temel komutlarımızı yazıp penceremize başlık verelim ve penceremizin boyutunu ayarlayalım. 290 pixele 200 pixel yaptım.

    from Tkinter import *
    pencere = Tk()
    pencere.title(u"canusta.com.tr - Python Dersleri")
    pencere.geometry("290x200+100+100")
    
    mainloop ()
    Bu komutları yeni açtığımız .py dosyaya yazıp run (F5) yaparsak aşağıdaki gibi bir şey karşımıza gelecek;



    Evet, başardık! Önümüze şuan görsel panel geliyor. Sıra butonları ve textbox (python adıyla entry) 'leri yerleştirmek!

    Yukarıya hoşgeldiniz yazısı ekliyorum. Haricinde kullanıcı adı ve şifre girilecek yerleri ekliyorum. Aşağıdaki kodlarda entry olanlar textbox'lar. Diğerleri normal metin katmanı.

    karsilama = Label(pencere)
    karsilama.config(text = u"Hosgeldiniz, lutfen giris yapiniz.")
    karsilama.pack()
    
    isimSor = Label(pencere)
    isimSor.config(text = u"Kullanici Adi:")
    isimSor.pack()
    
    isim = Entry(pencere)
    isim.pack()
    
    sifreSor = Label(pencere)
    sifreSor.config(text= u"Sifreniz:")
    sifreSor.pack()
    
    sifre = Entry(pencere)
    sifre.pack()
    Oluşturduğunuz değerlerin isimleri farklı olabilir (yani isimsor, karsilama vs. bunları farklılaştırabilirsiniz) Haricinde açtığınız değeri pencerenize tanımlayın hatırlıyorsanız en başta sisteme pencere diye başlık attık Label(pencere) diye değerinizi bu başlığa atayın. Birde açtığınızı değeri pack yapmazsanız sisteme baskı yapmaz.

    İşte böyle sistem çıktı;



    Hay Allah buton eklemeyi unutmuşuz, aşktan başım dönmüş heralde
    Hemen buton kodlarını vereyim;

    buton = Button(pencere)
    buton.config(text = u"Giris yap!", command = girisYap)
    buton.pack()
    
    sonuc = Label(pencere)
    sonuc.config(text = u"Giris yapilmadi.")
    sonuc.pack()
    Burada açtığım sonuç değerini ileride kullanacağız. Başta söz ettiğim giriş hakkı olayında falan buralar if else ile değişecek destroy ile yok olacak. Neyse devam;

    Sistem şuan şöyle. Ancak unutmuşum demeyi Tkinter'ı import ettiğimiz yerin altına girisYap diye fonksiyon oluşturun yoksa sistem hata verir. Demo alabilmeniz için şuanlık iç değeri boş bırakın yani pass yazın. Tıpkı aşağıdaki gibi.



    Şimdi oturum açma işlemi için ilgili komutları girelim:
    Komutları def girisYap(): 'dan sonraya ekleyin. Birde o defden önce bilgi demeti girmemiz gerek. Kullanıcı id pass oradan alacak. Görselde gördüğünüz gibi.

    bilgiler = ("demo", "123123")
    kAdi = isim.get()
    parola = sifre.get()
        print kAdi, " - ", parola
        print "Kontrol ediliyor ..."
        if kAdi == bilgiler[0] and parola == bilgiler[1]:
            print "Bilgiler dogru!"
            sonuc.config(text = u"Oturum acma islemi basarili.")
        else:
            print "Bilgiler yanlis!"
    Hem idle'da kontrol ediyor. Eğer bilgiler eşleşiyorsa oturum açıyor.



    Şimdi son olarak 3 adet deneme hakkı verip 3 hakkı doldurduktan sonra 5 saniye girişe yasak getireceğiz.

    Bunun için neler yapacağız?
    Linux zamanını belgeye import edeceğiz. Vakte +5 vereceğiz.
    Denemehakkı diye değer atayıp 3 diyeceğiz. Zaman diye değer atayıp 0 'a eşitleyeceğiz.

    Tkinter altına şunu ekleyin:
    import time
    Bilgiler demeti altına şunları ekleyin:
    denemeHakki = 3
    zaman = 0
    Ardına def girişyap ta global denemehakkı ve zaman değerlerini atayalım. (direk def girisYap(): 'tan sonra satır atıp ekleyin)

    global denemeHakki, zaman
    Şimdi deneme hakkı ve zamanı tanımlayalım. (Yukarıdaki kodun direk altına ekleyebilirsiniz.)

    if denemeHakki <= 0:
            if time.time()-zaman >= 5:
                denemeHakki = 3
            else:
                sonuc.config(text = u"Lutfen 5 saniye bekleyiniz.")
                return False
    Bir önce ki giriş ekranı formunu şöyle revize edelim:

        kAdi = isim.get()
        parola = sifre.get()
        print kAdi, " - ", parola
        print "Kontrol ediliyor ..."
        if kAdi == bilgiler[0] and parola == bilgiler[1]:
            print "Bilgiler dogru!"
            sonuc.config(text = u"Oturum acma islemi basarili.")
            ekraniTemizle()
        else:
            print "Bilgiler yanlis!"
            denemeHakki -= 1
            if denemeHakki == 0:
                zaman = time.time()
            sonuc.config(text = u"Bilgiler yanlis. Kalan deneme hakki: %d" %denemeHakki)
    Giriş işlemi başarılı olursa giriş yaptıktan sonra tüm ekranı temizleyelim.

    def ekraniTemizle():
        karsilama.config(text = u"Hosgeldin, Demo!")
        isimSor.destroy()
        isim.destroy()
        sifreSor.destroy()
        sifre.destroy()
        buton.destroy()
    Oturum açıldıktan sonra bakın böyle oluyor:



    buton.destroy() altına başka def ekleyerek iç dizaynınızı yapabilirsiniz. Yeni fonksiyonlar katabilirsiniz.

    Tüm kaynak kodları:
    from Tkinter import *
    import time
    
    bilgiler = ("demo", "123456")
    denemeHakki = 3
    zaman = 0
    def girisYap():
        global denemeHakki, zaman
        
        if denemeHakki <= 0:
            if time.time()-zaman >= 5:
                denemeHakki = 3
            else:
                sonuc.config(text = u"Lutfen 5 saniye bekleyiniz.")
                return False
        
        kAdi = isim.get()
        parola = sifre.get()
        print kAdi, " - ", parola
        print "Kontrol ediliyor ..."
        if kAdi == bilgiler[0] and parola == bilgiler[1]:
            print "Bilgiler dogru!"
            sonuc.config(text = u"Oturum acma islemi basarili.")
            ekraniTemizle()
        else:
            print "Bilgiler yanlis!"
            denemeHakki -= 1
            if denemeHakki == 0:
                zaman = time.time()
            sonuc.config(text = u"Bilgiler yanlis. Kalan deneme hakki: %d" %denemeHakki)
            
    
    def ekraniTemizle():
        karsilama.config(text = u"Hosgeldin, Demo!")
        isimSor.destroy()
        isim.destroy()
        sifreSor.destroy()
        sifre.destroy()
        buton.destroy()
    
    
    pencere = Tk()
    
    pencere.title(u"canusta.com.tr - Python Dersleri")
    pencere.geometry("290x200+100+100")
    
    karsilama = Label(pencere)
    karsilama.config(text = u"Hosgeldiniz, lutfen giris yapiniz.")
    karsilama.pack()
    
    isimSor = Label(pencere)
    isimSor.config(text = u"Kullanici Adi:")
    isimSor.pack()
    
    isim = Entry(pencere)
    isim.pack()
    
    sifreSor = Label(pencere)
    sifreSor.config(text= u"Sifreniz:")
    sifreSor.pack()
    
    sifre = Entry(pencere)
    sifre.pack()
    
    
    buton = Button(pencere)
    buton.config(text = u"Giris yap!", command = girisYap)
    buton.pack()
    
    sonuc = Label(pencere)
    sonuc.config(text = u"Giris yapilmadi.")
    sonuc.pack()
    
    
    mainloop ()
  • 24-07-2015, 23:47:17
    #2
    Üyeliği durduruldu
    Eline sağlık kardeşim. Güzel anlatım olmuş. Websitemde paylaşabilir miyim
  • 24-07-2015, 23:57:49
    #3
    ahmet5800 adlı üyeden alıntı: mesajı görüntüle
    Eline sağlık kardeşim. Güzel anlatım olmuş. Websitemde paylaşabilir miyim
    Önemli değil, tabi paylaşabilirsiniz
  • 25-07-2015, 00:54:02
    #4
    Teşekkürler, Burada yorumum kalsın, ileride laazım olur
  • 25-07-2015, 16:39:13
    #5
    truser adlı üyeden alıntı: mesajı görüntüle
    Teşekkürler, Burada yorumum kalsın, ileride laazım olur
    Önemli değil Python'a bende yeni yeni başladım. Konularda biraz daha ilerleyince yeni dersler ekleyeceğim.
  • 29-07-2015, 16:57:02
    #6
    Phyton ile ilgili anlatımların oldukça az olduğu bir dönemde güzel bir anlatım olmuş, eline sağlık
  • 29-07-2015, 17:11:44
    #7
    Üyeliği durduruldu
    Koah adlı üyeden alıntı: mesajı görüntüle
    Phyton ile ilgili anlatımların oldukça az olduğu bir dönemde güzel bir anlatım olmuş, eline sağlık
    +1 Eline saglik cok yararli bir anlatim
  • 29-07-2015, 19:08:16
    #8
    Koah adlı üyeden alıntı: mesajı görüntüle
    Phyton ile ilgili anlatımların oldukça az olduğu bir dönemde güzel bir anlatım olmuş, eline sağlık
    erninc adlı üyeden alıntı: mesajı görüntüle
    +1 Eline saglik cok yararli bir anlatim
    Önemli değil arkadaşlar Yeni konular ekleyeceğim inşallah zamanla.
  • 09-08-2015, 10:49:46
    #9
    MahmutCan adlı üyeden alıntı: mesajı görüntüle
    Merhaba arkadaşlar ben Tuğba'yı seven deli çocuk Can ,
    Aramız limoni, kol kırıldı yen içinde kaldı misali. Bende bu yüzden şu aralar kafamı fazla Python'a sardım. Piyasada bakınıyorum R10.net 'de bu kategoriye uğrayan yok onu geçtim Türkçe kaynak fazla yok. Bende yabancı kaynaklardan araştırıyorum sürekli. Ya da youtube'dan bakıyorum.

    Öğrendiklerimi size burada aktaracağım. Konulara görsel demolarda ekleyeceğim.
    Bu konumda sizlere python ile üye giriş paneli yapacağız.

    Tk ile sistemi yapacağız. mainloop() ile sistemi görsel olarak ekrana basacağız.
    from Tkinter import *
    Eğer mainloop veya Tkinter kullanmazsak sistem idle üstünden okutulur.

    Panelin Özellikleri Neler?
    - Tanımladığımız kullanıcı var. Bu kullanıcı id-şifresi ile giriş yapabiliyoruz sisteme.
    - Sisteme 3 defadan fazla yanlış bilgi girersek 5 saniye boyunca girişimizi engelliyor.
    - Üye oturumundan sonraki sayfayı şekillendirebilmekteyiz.



    Öncelikle temel komutlarımızı yazıp penceremize başlık verelim ve penceremizin boyutunu ayarlayalım. 290 pixele 200 pixel yaptım.

    from Tkinter import *
    pencere = Tk()
    pencere.title(u"canusta.com.tr - Python Dersleri")
    pencere.geometry("290x200+100+100")
    
    mainloop ()
    Bu komutları yeni açtığımız .py dosyaya yazıp run (F5) yaparsak aşağıdaki gibi bir şey karşımıza gelecek;



    Evet, başardık! Önümüze şuan görsel panel geliyor. Sıra butonları ve textbox (python adıyla entry) 'leri yerleştirmek!

    Yukarıya hoşgeldiniz yazısı ekliyorum. Haricinde kullanıcı adı ve şifre girilecek yerleri ekliyorum. Aşağıdaki kodlarda entry olanlar textbox'lar. Diğerleri normal metin katmanı.

    karsilama = Label(pencere)
    karsilama.config(text = u"Hosgeldiniz, lutfen giris yapiniz.")
    karsilama.pack()
    
    isimSor = Label(pencere)
    isimSor.config(text = u"Kullanici Adi:")
    isimSor.pack()
    
    isim = Entry(pencere)
    isim.pack()
    
    sifreSor = Label(pencere)
    sifreSor.config(text= u"Sifreniz:")
    sifreSor.pack()
    
    sifre = Entry(pencere)
    sifre.pack()
    Oluşturduğunuz değerlerin isimleri farklı olabilir (yani isimsor, karsilama vs. bunları farklılaştırabilirsiniz) Haricinde açtığınız değeri pencerenize tanımlayın hatırlıyorsanız en başta sisteme pencere diye başlık attık Label(pencere) diye değerinizi bu başlığa atayın. Birde açtığınızı değeri pack yapmazsanız sisteme baskı yapmaz.

    İşte böyle sistem çıktı;



    Hay Allah buton eklemeyi unutmuşuz, aşktan başım dönmüş heralde
    Hemen buton kodlarını vereyim;

    buton = Button(pencere)
    buton.config(text = u"Giris yap!", command = girisYap)
    buton.pack()
    
    sonuc = Label(pencere)
    sonuc.config(text = u"Giris yapilmadi.")
    sonuc.pack()
    Burada açtığım sonuç değerini ileride kullanacağız. Başta söz ettiğim giriş hakkı olayında falan buralar if else ile değişecek destroy ile yok olacak. Neyse devam;

    Sistem şuan şöyle. Ancak unutmuşum demeyi Tkinter'ı import ettiğimiz yerin altına girisYap diye fonksiyon oluşturun yoksa sistem hata verir. Demo alabilmeniz için şuanlık iç değeri boş bırakın yani pass yazın. Tıpkı aşağıdaki gibi.



    Şimdi oturum açma işlemi için ilgili komutları girelim:
    Komutları def girisYap(): 'dan sonraya ekleyin. Birde o defden önce bilgi demeti girmemiz gerek. Kullanıcı id pass oradan alacak. Görselde gördüğünüz gibi.

    bilgiler = ("demo", "123123")
    kAdi = isim.get()
    parola = sifre.get()
        print kAdi, " - ", parola
        print "Kontrol ediliyor ..."
        if kAdi == bilgiler[0] and parola == bilgiler[1]:
            print "Bilgiler dogru!"
            sonuc.config(text = u"Oturum acma islemi basarili.")
        else:
            print "Bilgiler yanlis!"
    Hem idle'da kontrol ediyor. Eğer bilgiler eşleşiyorsa oturum açıyor.



    Şimdi son olarak 3 adet deneme hakkı verip 3 hakkı doldurduktan sonra 5 saniye girişe yasak getireceğiz.

    Bunun için neler yapacağız?
    Linux zamanını belgeye import edeceğiz. Vakte +5 vereceğiz.
    Denemehakkı diye değer atayıp 3 diyeceğiz. Zaman diye değer atayıp 0 'a eşitleyeceğiz.

    Tkinter altına şunu ekleyin:
    import time
    Bilgiler demeti altına şunları ekleyin:
    denemeHakki = 3
    zaman = 0
    Ardına def girişyap ta global denemehakkı ve zaman değerlerini atayalım. (direk def girisYap(): 'tan sonra satır atıp ekleyin)

    global denemeHakki, zaman
    Şimdi deneme hakkı ve zamanı tanımlayalım. (Yukarıdaki kodun direk altına ekleyebilirsiniz.)

    if denemeHakki <= 0:
            if time.time()-zaman >= 5:
                denemeHakki = 3
            else:
                sonuc.config(text = u"Lutfen 5 saniye bekleyiniz.")
                return False
    Bir önce ki giriş ekranı formunu şöyle revize edelim:

        kAdi = isim.get()
        parola = sifre.get()
        print kAdi, " - ", parola
        print "Kontrol ediliyor ..."
        if kAdi == bilgiler[0] and parola == bilgiler[1]:
            print "Bilgiler dogru!"
            sonuc.config(text = u"Oturum acma islemi basarili.")
            ekraniTemizle()
        else:
            print "Bilgiler yanlis!"
            denemeHakki -= 1
            if denemeHakki == 0:
                zaman = time.time()
            sonuc.config(text = u"Bilgiler yanlis. Kalan deneme hakki: %d" %denemeHakki)
    Giriş işlemi başarılı olursa giriş yaptıktan sonra tüm ekranı temizleyelim.

    def ekraniTemizle():
        karsilama.config(text = u"Hosgeldin, Demo!")
        isimSor.destroy()
        isim.destroy()
        sifreSor.destroy()
        sifre.destroy()
        buton.destroy()
    Oturum açıldıktan sonra bakın böyle oluyor:



    buton.destroy() altına başka def ekleyerek iç dizaynınızı yapabilirsiniz. Yeni fonksiyonlar katabilirsiniz.

    Tüm kaynak kodları:
    from Tkinter import *
    import time
    
    bilgiler = ("demo", "123456")
    denemeHakki = 3
    zaman = 0
    def girisYap():
        global denemeHakki, zaman
        
        if denemeHakki <= 0:
            if time.time()-zaman >= 5:
                denemeHakki = 3
            else:
                sonuc.config(text = u"Lutfen 5 saniye bekleyiniz.")
                return False
        
        kAdi = isim.get()
        parola = sifre.get()
        print kAdi, " - ", parola
        print "Kontrol ediliyor ..."
        if kAdi == bilgiler[0] and parola == bilgiler[1]:
            print "Bilgiler dogru!"
            sonuc.config(text = u"Oturum acma islemi basarili.")
            ekraniTemizle()
        else:
            print "Bilgiler yanlis!"
            denemeHakki -= 1
            if denemeHakki == 0:
                zaman = time.time()
            sonuc.config(text = u"Bilgiler yanlis. Kalan deneme hakki: %d" %denemeHakki)
            
    
    def ekraniTemizle():
        karsilama.config(text = u"Hosgeldin, Demo!")
        isimSor.destroy()
        isim.destroy()
        sifreSor.destroy()
        sifre.destroy()
        buton.destroy()
    
    
    pencere = Tk()
    
    pencere.title(u"canusta.com.tr - Python Dersleri")
    pencere.geometry("290x200+100+100")
    
    karsilama = Label(pencere)
    karsilama.config(text = u"Hosgeldiniz, lutfen giris yapiniz.")
    karsilama.pack()
    
    isimSor = Label(pencere)
    isimSor.config(text = u"Kullanici Adi:")
    isimSor.pack()
    
    isim = Entry(pencere)
    isim.pack()
    
    sifreSor = Label(pencere)
    sifreSor.config(text= u"Sifreniz:")
    sifreSor.pack()
    
    sifre = Entry(pencere)
    sifre.pack()
    
    
    buton = Button(pencere)
    buton.config(text = u"Giris yap!", command = girisYap)
    buton.pack()
    
    sonuc = Label(pencere)
    sonuc.config(text = u"Giris yapilmadi.")
    sonuc.pack()
    
    
    mainloop ()
    Teşekkürler.
    Toplu bir demo paylaşsaydın iyi olurdu rar haklinde fln