Merhaba;
Pythonda request ile internetten alınmış bir verinin programı tekrar başlatmadan nasıl yenileyebilirim
Kur verisi sürekli değiştiği için…
Bunun için while
döngüsüne alıp dakikada bir çekebilirsiniz.
Dediğinizi birçok farklı şekilde yaptım ama 2. ekran gelmiyor.
import time
import subprocess
import requests
from bs4 import BeautifulSoup
from selenium import webdriver
from tkinter import *
from tkinter import messagebox
def girisYap():
user=isim.get()
pasw=sifre.get()
if user=="1.kişi" and pasw=="123123":
basarili()
pencere2()
elif user=="2.kişi" and pasw=="123123":
basarili()
pencere2()
elif user=="3.kişi" and pasw=="123123":
basarili()
pencere2()
elif user=="4.kişi" and pasw=="123123":
basarili()
pencere2()
elif user=="4.kişi" and pasw=="123123":
basarili()
pencere2()
elif user=="" or pasw=="":
tanımsız()
else:
yanlış()
def sil2(ıskonto,fıyat):
ıskonto.delete(0,'end')
fıyat.delete(0,'end')
def kurtık():
chromedriver="C:/hesisk/chromedriver.exe"
driver=webdriver.Chrome(chromedriver)
driver.get("https://altin.in")
def sil():
isim.delete(0,'end')
sifre.delete(0,'end')
def hesapla(fıyat,ıskonto,sonucGoster,var):
x=float(fıyat.get())
z=ıskonto.get()
d=var.get()
kd=int(d)*int(x)
q=int(kd)-int(kd)*(int(z)*(1/100))
sonuç=(int(q)+(int(q)*18/100))
sonucGoster.config(text="Fiyat :"+str(sonuç)+"₺",fg="black",bg="light grey",font="None 12 bold")
def basarili():
pencere.destroy()
def tanımsız():
isimSor.config(text=" Kullanıcı Adı* :",fg="red",bg="light grey",font="None 11")
sifreSor.config(text=" Parola* :",fg="red",bg="light grey",font="None 11")
durum.config(text="(*) alanlar boş bırakılamaz!",fg="red",bg="light grey",font="None 9")
sil()
def yanlış():
isimSor.config(text=" Kullanıcı Adı* :",fg="black",bg="light grey",font="None 11")
sifreSor.config(text=" Parola* :",fg="black",bg="light grey",font="None 11")
durum.config(text="Bilgiler yanlış!",fg="red",bg="light grey",font="None 9")
sil()
def pencere2():
kururl="https://altin.in"
r=requests.get(kururl)
soup=BeautifulSoup(r.content,"html.parser")
euro_veri=soup.find_all("b",{"id":"sabitEuro"})
dolar_veri=soup.find_all("b",{"id":"sabitDolar"})
döngü1=1
while döngü1==1:
euro=euro_veri[0].text
dolar=dolar_veri[0].text
time.sleep(60)
döngü1=1
pencere2=Tk()
pencere2.title("▬▬▬▬▬▬▬▬ İskHes ▬▬▬▬▬▬▬▬")
pencere2.config(bg="light grey")
pencere2.geometry("420x300+530+110")
note1=Label(pencere2)
note1.config(text="⚠ Not ⚠",bg="light grey",fg="red",font="None 9 bold")
note1.grid(row=6,column=1)
note2=Label(pencere2)
note2.config(text="Ondalıklı sayılarda virgül(,) yerine nokta(.) kullanınız",bg="light grey",fg="black",font="None 7")
note2.grid(row=7,column=1)
marka2=Label(pencere2)
marka2.config(text="***",bg="light grey",fg="black",font="Times 7")
marka2.grid(row=0,column=1)
fiyatSor=Label(pencere2)
fiyatSor.config(text="Ürün fiyatı :",fg="black",bg="light grey",font="None 11")
fiyatSor.grid(row=1,column=0,sticky=E)
fıyat=Entry(pencere2)
fıyat.config(bg="white",width="39")
fıyat.grid(row=1,column=1)
iskontoSor=Label(pencere2)
iskontoSor.config(text="İskonto :",fg="black",bg="light grey",font="None 11")
iskontoSor.grid(row=2,column=0,sticky=E)
ıskonto=Entry(pencere2)
ıskonto.config(bg="white",width="39")
ıskonto.grid(row=2,column=1)
hesapM=Button(pencere2)
hesapM.config(text="Hesap Makinesi",fg="black",bg="light grey",font="None 8",width="12",command=calcilator)
hesapM.grid(row=5,column=1,sticky=E)
hesisk=Button(pencere2)
hesisk.config(text="Hesapla",fg="black",bg="light grey",font="None 8",width="13")
hesisk.grid(row=5,column=2)
temizle=Button(pencere2)
temizle.config(text="Yenile",fg="black",bg="light grey",font="None 8",width="11")
temizle.grid(row=5,column=1)
temizle["command"]=lambda: sil2(ıskonto,fıyat)
bitir=Button(pencere2)
bitir.config(text="Bitir",fg="red",bg="light grey",activebackground="red",font="None 11",command=quit)
bitir.grid(row=10,column=1)
var=IntVar()
seçenek_tl=Radiobutton(pencere2,text="TL",bg="light grey",value=1,variable=var)
seçenek_tl.grid(row=1,column=2,sticky=W)
seçenek_tl["command"]=lambda: hesapla(fıyat,ıskonto,sonucGoster,var)
seçenek_euro=Radiobutton(pencere2,text="EURO",bg="light grey",value=euro,variable=var)
seçenek_euro.grid(row=2,column=2,sticky=W)
seçenek_euro["command"]=lambda: hesapla(fıyat,ıskonto,sonucGoster,var)
seçenek_dolar=Radiobutton(pencere2,text="DOLAR",bg="light grey",value=dolar,variable=var)
seçenek_dolar.grid(row=3,column=2,sticky=W)
seçenek_dolar["command"]=lambda: hesapla(fıyat,ıskonto,sonucGoster,var)
sonucGoster=Label(pencere2)
sonucGoster.config(text="Henüz hesaplanmadı",fg="black",bg="light grey",font="None 12")
sonucGoster.grid(row=4,column=1)
hesisk["command"]=lambda: hesapla(fıyat,ıskonto,sonucGoster,var)
euroGöster=Label(pencere2)
euroGöster.config(text="Euro :"+str(euro),fg="black",bg="light grey",font="None 11 bold")
euroGöster.grid(row=3,column=1,sticky=W)
dolarGöster=Label(pencere2)
dolarGöster.config(text="Dolar :"+str(dolar),fg="black",bg="light grey",font="None 11 bold")
dolarGöster.grid(row=3,column=1,sticky=E)
araçlar=Menu(pencere2)
araç=Menu(araçlar,tearoff=0)
araç.add_command(label="Hesap Makinesi",command=calcilator)
araç.add_command(label="Döviz(altarnatif)",command=kurtık)
araç.add_separator()
araç.add_command(label="Çıkış",command=quit)
araçlar.add_cascade(label="Araçlar",menu=araç)
pencere2.config(menu=araçlar)
mainloop()
def calcilator():
subprocess.Popen("C:\\Windows\\System32\\calc.exe")
pencere=Tk()
pencere.title("▬▬▬▬▬ Giriş Ekranı ▬▬▬▬▬")
pencere.config(bg="light grey")
pencere.geometry("370x150+650+110")
marka=Label(pencere)
marka.config(text="***",bg="light grey",fg="black",font="Times 7")
marka.grid(row=0,column=1)
isimSor=Label(pencere)
isimSor.config(text=" Kullanıcı Adı* :",fg="black",bg="light grey",font="None 11")
isimSor.grid(row=1,column=0)
isim=Entry(pencere)
isim.config(bg="white",width="30")
isim.grid(row=1,column=1)
sifreSor=Label(pencere)
sifreSor.config(text=" Parola* : ",fg="black",bg="light grey",font="None 11")
sifreSor.grid(row=2,column=0)
sifre=Entry(pencere)
sifre.config(bg="white",width="30",show="•")
sifre.grid(row=2,column=1)
durum=Label(pencere)
durum.config(text="Henüz giriş yapılmadı",fg="black",bg="light grey",font="None 11")
durum.grid(row=3,column=1)
giriş=Button(pencere)
giriş.config(text="Giriş",fg="black",bg="light grey",font="None 11",command=girisYap)
giriş.grid(row=4,column=1)
mainloop()
pencere fonksiyonundaki while döngüsünün bitmemesinden dolayı ikinci ekran gelmiyor bence.
nasıl yapacağız o zaman
PyQt5 için QTimer vardı belki tkinter için de böyle bir modül vardır
ya da belki qtimer ı tikenter içinde de kullanabilirsin
bilmiyorum ama denerim sağol
Bence en kolayı bir tane kur yenile butonu oluşturup altta yazdığım kurYenile fonksiyonu commanda ekleyin.
def kurYenile():
kururl="https://altin.in"
r=requests.get(kururl)
soup=BeautifulSoup(r.content,"html.parser")
euro_veri=soup.find_all("b",{"id":"sabitEuro"})
dolar_veri=soup.find_all("b",{"id":"sabitDolar"})
euro=euro_veri[0].text
dolar=dolar_veri[0].text
def pencere2():
kurYenile()
pencere2=Tk()
pencere2.title("▬▬▬▬▬▬▬▬ İskHes ▬▬▬▬▬▬▬▬")
pencere2.config(bg="light grey")
pencere2.geometry("420x300+530+110")
anlaşılır olmuştur umarım
euro ve dolarda hata veriyor
def kurYenile():
global dolar,euro
kururl="https://altin.in"
r=requests.get(kururl)
soup=BeautifulSoup(r.content,"html.parser")
euro_veri=soup.find_all("b",{"id":"sabitEuro"})
dolar_veri=soup.find_all("b",{"id":"sabitDolar"})
euro=euro_veri[0].text
dolar=dolar_veri[0].text
ne kadar sağlıklı bir kod bilmiyorum ama çözüm olabileceğini düşündüm.
eyw sağol ama o da olmadı kardeş
kodu hepsini tekrar atar mısınız? Özelden de atabilirsiniz isterseniz
İkisi farklı kütüphaneler, yanlış bilgilendirmeyelim.
evet farklı kütüphaneler bunu
burdan da anlayabileceğini düşünüyorum
tm evet ama önce
bunu dedim ya zaten
“return” ile olabilirmi acaba