class veri_cekme(QMainWindow):
def __init__(self):
super().__init__()
self.ui=Ui_MainWindow()
self.ui.setupUi(self)
self.connect = sqlite3.connect('C:\python_veri_cekme_veritabani\python_job_veritabani.db')
self.im = self.connect.cursor()
veritabani = """CREATE TABLE IF NOT EXISTS PythonJob(id INTEGER PRIMARY KEY AUTOINCREMENT,Uzmanlık TEXT,Sirket TEXT,Ulke TEXT,Tarih TEXT)"""
# im.execute("""DROP TABLE PythonJob""")
self.im.execute(veritabani)
self.ui.tableWidget.itemSelectionChanged.connect(self.doldur)
self.ui.pushButton.clicked.connect(self.table_calistir)
#self.calistirilacak_kod()
def calistirilacak_kod(self):
url = "https://www.python.org/jobs"
r = requests.get(url)
soup = BeautifulSoup(r.content,"lxml")
pages = len(soup.find_all("ul",attrs={"class":"pagination"})[0].find_all("li")) - 2
totalJobs = 0
for pageNumber in range(1,pages + 1):
pageRequest = requests.get("https://www.python.org/jobs/?page=" + str(pageNumber))
pageSource = BeautifulSoup(pageRequest.content,"lxml")
jobs = pageSource.find("div",attrs={"class":"row"}).ol.find_all("li")
for job in jobs:
name = job.h2.find("a").text
location = job.find("span",attrs={"class":"listing-location"}).text
company = job.find("span",attrs={"class":"listing-company-name"}).br.next.strip()
publish_time = job.find("time").text
totalJobs += 1
print(name,company,location,publish_time,sep="\n")
im.execute("""INSERT INTO PythonJob(Uzmanlık,Sirket,Ulke,Tarih) VALUES (?,?,?,?)""", [name,company,location,publish_time])
connect.commit()
print("-"*60)
print("Toplam {} iş bulundu.".format(totalJobs))
def doldur(self):
try:
secili=self.ui.tableWidget.selectedItems()
self.ui.lineEdit.setText(secili[0].text())
self.ui.lineEdit_2.setText(secili[1].text())
self.ui.lineEdit_3.setText(secili[2].text())
self.ui.lineEdit_4.setText(secili[3].text())
if secili==[]:
return
except Exception as Hata:
self.ui.statusbar.showMessage("Hata var",2000)
def table_calistir(self):
self.ui.tableWidget.clear()
self.ui.tableWidget.setHorizontalHeaderLabels(('Uzmanlık','Sirket','Ulke','Tarih'))
self.ui.tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
self.ui.tableWidget.setSelectionMode(QAbstractItemView.SingleSelection)
self.ui.tableWidget.setAlternatingRowColors(True)
pallete = self.ui.tableWidget.palette()
pallete.setColor(QPalette.Background, QColor(60, 60, 60))
pallete.setColor(QPalette.AlternateBase, QColor("darkkhaki"))
pallete.setColor(QPalette.Base, QColor('#bbb'))
self.ui.tableWidget.setPalette(pallete)
sec=self.im.execute("SELECT Uzmanlık,Sirket,Ulke,Tarih FROM PythonJob")
okuma=sec.fetchall()
self.ui.tableWidget.setRowCount(0)
for row_number, row_data in enumerate(okuma):
self.ui.tableWidget.insertRow(row_number)
for columb_number, data in enumerate(row_data):
self.ui.tableWidget.setItem(row_number, columb_number, QTableWidgetItem(str(data)))
arkadaşlar kodlarım bu şekilde bir sorunum var
şöyle bir ekranım var
Bir siteden verileri çekip ardından veritabanına kaydettim
Sonra bunları bir tabloda gösterdim
Bu ekranda bir veri güncellemek istediğim zaman direk veritabanından güncellemesini istemiyorum
direk tabloda güncellesin istiyorum
Verileri direk line edit alanına da getiremedim
1 veya 2 sıradaki indexlere tıkladığım zaman bütün verileri line edit bölümüne getirsin
Bu getirdiğim veriler üzerinden güncelleme yapılsın ama sadece tablo üzerinde veritabanında değil
İstediğim zamanda kayıt arayabileyim
Yardımlarınız için şimdiden teşekkür ederim