Python koduyla nasıl Excel dosyası sisteme kaydedilir?

xu1

Centipat
Katılım
5 Eylül 2022
Mesajlar
968
Çözümler
6
Merhaba arkadaşlar, elimde kullanicinin adini soyadini ve yasadigi sehiri kullanicidan isteyip o verileri bir Excel ve txt dosyasina aktaran bir kod var.

Python:
import tkinter as tk.
import openpyxl.

def write_data():
 fname = entry_fname.get()
 age = entry_age.get()
 city = entry_city.get()
 with open('data.txt', 'a') as file:
 file.write(fname.capitalize() + " " + age + " " + city.capitalize() + "\n")
 worksheet.cell(row=row_num, column=1).value = fname.capitalize()
 worksheet.cell(row=row_num, column=2).value = age.
 worksheet.cell(row=row_num, column=3).value = city.capitalize()
 workbook.save("data.xlsx")
 label_output.config(text=fname.capitalize() + " " + age + " " + city.capitalize())

workbook = openpyxl.Workbook()
worksheet = workbook.active
worksheet['A1'] = "Name"
worksheet['B1'] = "Age"
worksheet['C1'] = "City"

with open('data.txt', 'r') as file:
 row_num = 2
 for line in file:
 name, age, city = line.strip().split()
 worksheet.cell(row=row_num, column=1).value = name.capitalize()
 worksheet.cell(row=row_num, column=2).value = age.
 worksheet.cell(row=row_num, column=3).value = city.capitalize()
 row_num += 1

root = tk.Tk()
root.title("User Information")

label_fname = tk.Label(root, text="Name:")
label_fname.grid(row=0, column=0)
label_age = tk.Label(root, text="Age:")
label_age.grid(row=1, column=0)
label_city = tk.Label(root, text="Where do you live?:")
label_city.grid(row=2, column=0)
label_output = tk.Label(root, text="")
label_output.grid(row=3, column=0)

entry_fname = tk.Entry(root)
entry_fname.grid(row=0, column=1)
entry_age = tk.Entry(root)
entry_age.grid(row=1, column=1)
entry_city = tk.Entry(root)
entry_city.grid(row=2, column=1)

button_submit = tk.Button(root, text="Submit", command=write_data)
button_submit.grid(row=3, column=1)

root.mainloop()

Bu kodu basit bir WordPress sitesinde kullanip sitede kullanicidan bu bilgileri giremsini isteyeceğim ve kullanicinin girdigi veri benim laptopumda Excel dosyasina kaydedilmesini istiyorum. Bu mumkun mu?
 
Python ile girilen veriyi Excel'le kaydetmek basit ve kolay bir iş lakin siz WordPress'ten bahsetmişsiniz. Bu işleri biraz karıştırır. Öncelikle kişi formu doldurduğunda bu veriler bir veritabanında toplanmalı, ardından sizin Python yazılımınız bu veri tabanına bağlanıp belirli aralıklarla veriyi kendi içine çekmeli veya sürekli bağlı kalmalı ardından veriyi istediğiniz biçimdeki Excel dosyasına aktarmalı. Yazdığınız kodda ara yüz vs. var lakin WordPress'ten veriyi içeri almanız gerekiyor. Kodda gördüğüm kadarıyla bir veri tabanı bağlantısı ya da WordPress ile yazılım arasında bir köprü kurulmamış.
 
Bir veri tabanina nasıl baglayabilirim eger zamaniniz varsa detayli anlatabilir misiniz?
Not: Yeni başladım kusura bakmayin.
 
Bir veri tabanina nasıl baglayabilirim eger zamaniniz varsa detayli anlatabilir misiniz?
Not: Yeni başladım kusura bakmayin.
Öncelikle hangi veritabanını kullanacağınıza bakmak lazım. Doldurttuğunuz form WordPress'in ana veritabanına kaydolacak, hosting firmanız hangi veri tabanını kullanıyor bunlar önemli. Genelde MySQL kullanılır. MySQL'e bağlanmak için şu kod işinize yarar. Detaylı bilgi için MySQL :: MySQL Connector/Python Developer Guide ve çeşitli youtube videolarına bakmanız gerekir. Aşağıda atacağım koddaki host adresi kısmına hosting firmanızın size sağladığı MySQL servisinin host adresini yazmalısınız. Bu genelde "localhost" olur fakat bunu bu şekilde yazarsanız program sitenize bağlanmaz. O yüzden hosting firmanızdan veritabanı bağlantı adresini almanız gerekecektir. Tabi bu durum güvenlik açığı da oluşturabilir. Eğer yazdığınız kod birinin eline geçerse doğrudan sitenizin veritabanına bağlanabilir çünkü bağlantı bilgilerini açıkça yazmış olacaksınız.

Python:
import mysql.connector

# Veritabanı bağlantı bilgilerini aşağıdaki alana yazın
config = {
  'user': 'kullanici_adi',
  'password': 'sifre',
  'host': 'hostname',
  'database': 'veritabani_adi'
}

# MySQL veritabanına bağlantısı sağlayan kod
conn = mysql.connector.connect(**config)

# Bağlantı üzerinde işlem yaptırır
cursor = conn.cursor()
cursor.execute("SELECT * FROM tablo_adi")
results = cursor.fetchall()

# Bağlantıyı kapatır
cursor.close()
conn.close()
 

Geri
Yukarı