Arama butonu
Bu konudaki kullanıcılar: 1 misafir
11
Cevap
650
Tıklama
1
Öne Çıkarma
OOP
O
7 yıl
Onbaşı
Konu Sahibi

Merhaba.Bu kod nesneye yönelik olmuş mu ?

import sys
import sqlite3
from PyQt5 import QtWidgets
import string
import random
import hashlib

class Baglanti:

def baglanti1(self):
self.baglantı = sqlite3.connect("database.db")
self.cursor = self.baglantı.cursor()
self.cursor.execute("create table if not exists üyeler(kullanıcı_ID TEXT,anaşifre TEXT)")
self.cursor.execute("create table if not exists şifreler(anaşifre TEXT,Uygulamalar TEXT,Şifre TEXT)")
self.baglantı.commit()
def baglanti_kes(self):
self.baglantı.close()

class AnaEkran(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.init_ui()
baglanti.baglanti1()

def init_ui(self):

self.setWindowTitle("şifre yöneticisi")
self.setGeometry(200, 200,600,600)

self.hosgeldiniz = QtWidgets.QLabel("Şifre Yöneticisine Hoşgeldiniz.")

self.kullanici_yeri = QtWidgets.QLabel("Kullanıcı ID: ")
self.şifre_yeri = QtWidgets.QLabel("Şifre: ")
self.kullanici_girisi = QtWidgets.QLineEdit()
self.parola = QtWidgets.QLineEdit()
self.parola.setEchoMode(QtWidgets.QLineEdit.Password)
self.giris = QtWidgets.QPushButton("Giriş")
self.kayıt_ol = QtWidgets.QPushButton("Kayıt Ol")
self.yazi_alani = QtWidgets.QLabel("")
self.sifremi_degistir = QtWidgets.QPushButton("Ana Şifremi degistir")

v_box = QtWidgets.QVBoxLayout()
v_box.addWidget(self.hosgeldiniz)
v_box.addWidget(self.kullanici_yeri)
v_box.addWidget(self.kullanici_girisi)
v_box.addWidget(self.şifre_yeri)
v_box.addWidget(self.parola)
v_box.addWidget(self.yazi_alani)
v_box.addStretch()
v_box.addWidget(self.giris)
v_box.addWidget(self.kayıt_ol)
v_box.addWidget(self.sifremi_degistir)

h_box = QtWidgets.QHBoxLayout()
h_box.addStretch()
h_box.addLayout(v_box)
h_box.addStretch()

self.setLayout(h_box)
self.giris.clicked.connect(self.login)
self.kayıt_ol.clicked.connect(self.register)
self.sifremi_degistir.clicked.connect(self.sifre_degistir)
self.show()

def sifre_degistir(self):

sifredegistir.show()
self.close()

def register(self):

k_adı = self.kullanici_girisi.text()
parola = str(self.parola.text())
k_adı_hashing = hashlib.md5(k_adı.encode('utf-8')).hexdigest()
parola_hashing = hashlib.md5(parola.encode('utf-8')).hexdigest()
baglanti.cursor.execute("select * from üyeler where kullanıcı_ID=?", (k_adı_hashing,))
data = baglanti.cursor.fetchall()
if (len(k_adı) == 0 or len(parola) == 0):
self.yazi_alani.setText("Bilgileri doldurun")
elif (len(parola) < 6):
self.yazi_alani.setText("Şifre 6 karakterden az olamaz ")
elif (len(data) != 0):
self.yazi_alani.setText("Boyle bır kullanıcı zaten var ")

elif (len(k_adı) != 0 and len(parola) != 0):
baglanti.cursor.execute("insert into üyeler values(?,?)", (k_adı_hashing, parola_hashing))
self.yazi_alani.setText("Kayıt başarılı")
baglanti.baglantı.commit()

def login(self):

adi = str(self.kullanici_girisi.text())
par = str(self.parola.text())
adi_hashing = hashlib.md5(adi.encode('utf-8')).hexdigest()
par_hashing = hashlib.md5(par.encode('utf-8')).hexdigest()

baglanti.cursor.execute("select * from üyeler where anaşifre=?", (par_hashing,))

data = baglanti.cursor.fetchall()

if (len(adi) == 0 or len(par) == 0):
self.yazi_alani.setText("Lütfen bilgileri doldurun")
elif (len(data) == 0):
self.yazi_alani.setText("Giriş başarısız")
else:
self.yazi_alani.setText("Hoşgeldiniz" + adi)
ıslemler.show()


class Islemler(QtWidgets.QWidget):

def __init__(self):
super().__init__()
self.gorsel()
baglanti.baglanti1()

def gorsel(self):

self.setWindowTitle("İşlemler")
self.setGeometry(200, 200, 600, 600)

self.sifre_buton = QtWidgets.QPushButton("Şifrelerimi sakla ")
self.sifreleri_goster = QtWidgets.QPushButton("Şifrelerimi göster")
self.sifre_uret = QtWidgets.QPushButton("Şifre üret")
self.text_edit = QtWidgets.QTextEdit()
self.girise_dön = QtWidgets.QPushButton("Girişe dön")

v_box = QtWidgets.QVBoxLayout()
v_box.addWidget(self.sifreleri_goster)
v_box.addWidget(self.text_edit)
v_box.addStretch()
v_box.addWidget(self.sifre_uret)
v_box.addWidget(self.sifre_buton)
v_box.addWidget(self.girise_dön)

h_box = QtWidgets.QHBoxLayout()
h_box.addStretch()
h_box.addLayout(v_box)
h_box.addStretch()
self.setLayout(h_box)

self.girise_dön.clicked.connect(self.giris1)
self.sifre_uret.clicked.connect(self.diger_sifre)
self.sifre_buton.clicked.connect(self.diger_sakla)
self.sifreleri_goster.clicked.connect(self.sifre_goster)

def giris1(self):
anaekran.show()
self.text_edit.clear()
self.close()

def sifre_goster(self):

ana_şifre = str(anaekran.parola.text())
ana_şifre_hashing = hashlib.md5(ana_şifre.encode('utf-8')).hexdigest()
baglanti.cursor.execute("select Uygulamalar,Şifre from şifreler where anaşifre=?", (ana_şifre_hashing,))
liste = baglanti.cursor.fetchall()
liste=dict(liste)
if(len(liste)!=0):
temp=""
temp2=""
for i in liste.keys():
temp+=i+"\n"
for j in liste.values():
temp2+=j+"\n"+"\n"
self.text_edit.setText(str(temp)+"\n"+str(temp2))

def diger_sifre(self):
sifreuret.show()
self.text_edit.clear()
self.close()

def diger_sakla(self):
sifresakla.show()
self.text_edit.clear()
self.close()


class Sifreuret(QtWidgets.QWidget):

def __init__(self):

super().__init__()

baglanti.baglanti1()
self.islemler()

def islemler(self):
self.setWindowTitle("Şifre üret")
self.setGeometry(200, 200, 600, 600)

self.sifre_uret = QtWidgets.QPushButton("Şifre üret")
self.uzunluk_yazisi = QtWidgets.QLabel("Şifre Uzunluğunu belirtiniz")
self.uzunluk_yeri = QtWidgets.QLineEdit()
self.kucuk_harf = QtWidgets.QCheckBox("Küçük harf")
self.buyuk_harf = QtWidgets.QCheckBox("Büyük harf")
self.karakter = QtWidgets.QCheckBox("Özel karakter")
self.sayı = QtWidgets.QCheckBox("Sayı")
self.olusturulan_sifre = QtWidgets.QLabel("Oluşturulan şifre")
self.olusturulan_sifre_yeri = QtWidgets.QLineEdit()
self.kaydet_buton = QtWidgets.QPushButton("Şifreyi Kaydet")
self.tanım = QtWidgets.QLabel("Şifreyi ne için kaydetmek istiyorsunuz ?")
self.tanım_yeri = QtWidgets.QLineEdit()

self.kaydedildi_yazisi = QtWidgets.QLabel("")
self.geri_dön = QtWidgets.QPushButton("Geri dön")
self.girise_dön = QtWidgets.QPushButton("Girişe dön")

v_box = QtWidgets.QVBoxLayout()
v_box.addWidget(self.uzunluk_yazisi)
v_box.addWidget(self.uzunluk_yeri)
v_box.addWidget(self.kucuk_harf)
v_box.addWidget(self.buyuk_harf)
v_box.addWidget(self.karakter)
v_box.addWidget(self.sayı)
v_box.addWidget(self.sifre_uret)
v_box.addWidget(self.olusturulan_sifre)
v_box.addWidget(self.olusturulan_sifre_yeri)
v_box.addStretch()

v_box.addWidget(self.tanım)
v_box.addWidget(self.tanım_yeri)
v_box.addWidget(self.kaydet_buton)
v_box.addWidget(self.kaydedildi_yazisi)
v_box.addStretch()
v_box.addWidget(self.girise_dön)
v_box.addWidget(self.geri_dön)

h_box = QtWidgets.QHBoxLayout()
h_box.addLayout(v_box)

self.setLayout(h_box)
self.girise_dön.clicked.connect(self.giris1)
self.geri_dön.clicked.connect(self.geri1)
self.kaydet_buton.clicked.connect(self.sifreyi_kaydet1)
self.sifre_uret.clicked.connect(lambda: self.sifre_uret1(self.buyuk_harf.isChecked(),self.kucuk_harf.isChecked(),self.karakter.isChecked(), self.sayı.isChecked(), self.olusturulan_sifre_yeri))

def giris1(self):
anaekran.show()
ıslemler.close()
self.uzunluk_yeri.clear()
self.olusturulan_sifre_yeri.clear()
self.close()

def geri1(self):
ıslemler.show()
self.uzunluk_yeri.clear()
self.olusturulan_sifre_yeri.clear()
self.close()

def sifre_uret1(self, buyuk, kucuk, karakter, sayı, yazı):

chars = ""
uzunluk = int(self.uzunluk_yeri.text())

if kucuk:
chars += string.ascii_lowercase
if buyuk:
chars += string.ascii_uppercase
if karakter:
ozel_karakterler = ("!#$/%&*+-:;?@\_")
chars += ozel_karakterler
if sayı:
chars += string.digits


temp = ""

for i in range(uzunluk):
temp += random.choice(chars)
self.olusturulan_sifre_yeri.setText(str(temp))

def sifreyi_kaydet1(self):

anasifre = str(anaekran.parola.text())
tanım = str(self.tanım_yeri.text())
şifre = str(self.olusturulan_sifre_yeri.text())

anasifre_hashing = hashlib.md5(anasifre.encode('utf-8')).hexdigest()

baglanti.cursor.execute("select * from üyeler where anaşifre=?", (anasifre_hashing,))
liste = baglanti.cursor.fetchall()
if (len(liste) != 0):

baglanti.cursor.execute("insert into şifreler values(?,?,?)", (anasifre_hashing, tanım, şifre))
baglanti.baglantı.commit()
self.kaydedildi_yazisi.setText("Şifreniz kaydedildi")
else:
self.kaydedildi_yazisi.setText("Ana şifreniz yanlış.Lütfen tekrar deneyiniz.")


class Sifresakla(QtWidgets.QWidget):

def __init__(self):

super().__init__()
baglanti.baglanti1()

self.islemler()

def islemler(self):

self.setWindowTitle("Şifreleri sakla")
self.setGeometry(200, 200, 600, 600)

self.sifre = QtWidgets.QLabel("Şifreniz")
self.sifre_yeri = QtWidgets.QLineEdit()

self.uygulama = QtWidgets.QLabel("Şifrenizi ne için kaydetmek istiyorsunuz ? ")
self.uygulama_yeri = QtWidgets.QLineEdit()

self.kaydet = QtWidgets.QPushButton("Şifremi Kaydet")
self.bilgi = QtWidgets.QLabel("")
self.geri_dön = QtWidgets.QPushButton("Geri Dön")
self.girise_dön = QtWidgets.QPushButton("Girişe dön")

v_box = QtWidgets.QVBoxLayout()

v_box.addWidget(self.uygulama)
v_box.addWidget(self.uygulama_yeri)
v_box.addWidget(self.sifre)
v_box.addWidget(self.sifre_yeri)
v_box.addWidget(self.kaydet)
v_box.addWidget(self.bilgi)
v_box.addStretch()
v_box.addWidget(self.geri_dön)
v_box.addWidget(self.girise_dön)

h_box = QtWidgets.QHBoxLayout()
h_box.addLayout(v_box)
h_box.addStretch()

self.geri_dön.clicked.connect(self.geri1)
self.girise_dön.clicked.connect(self.giris1)
self.setLayout(h_box)
self.kaydet.clicked.connect(self.sifre_sakla1)

def geri1(self):
ıslemler.show()
self.sifre_yeri.clear()
self.uygulama_yeri.clear()
self.close()

def giris1(self):
anaekran.show()
self.sifre_yeri.clear()
self.uygulama_yeri.clear()
self.close()

def sifre_sakla1(self):

ana_şifre = str(anaekran.parola.text())
sifre = str(self.sifre_yeri.text())
tanım = str(self.uygulama_yeri.text())

ana_şifre_hashing = hashlib.md5(ana_şifre.encode('utf-8')).hexdigest()
baglanti.cursor.execute("select * from üyeler where anaşifre=?", (ana_şifre_hashing,))
liste = baglanti.cursor.fetchall()
if (len(liste) != 0):

baglanti.cursor.execute("insert into şifreler values(?,?,?)", (ana_şifre_hashing, tanım, sifre))
baglanti.baglantı.commit()
self.bilgi.setText("Şifreniz kaydedildi")
else:
self.bilgi.setText("Ana şifreniz yanlış tekrar deneyin")


class Sifredegistir(QtWidgets.QWidget):

def __init__(self):

super().__init__()
baglanti.baglanti1()

self.islemler()

def islemler(self):

self.eski_sifre = QtWidgets.QLabel("Eski şifrenizi girin")
self.eski_sifre_yeri = QtWidgets.QLineEdit()
self.eski_sifre_yeri.setEchoMode(QtWidgets.QLineEdit.Password)
self.yeni_sifre = QtWidgets.QLabel("Yeni şifrenizi girin")
self.yeni_sifre_yeri = QtWidgets.QLineEdit()
self.yeni_sifre_yeri.setEchoMode(QtWidgets.QLineEdit.Password)
self.sifreyi_degistir = QtWidgets.QPushButton("Şifremi değiştir")
self.yazi = QtWidgets.QLabel("")
self.girise_don = QtWidgets.QPushButton("Girişe dön")

v_box = QtWidgets.QVBoxLayout()
v_box.addWidget(self.eski_sifre)
v_box.addWidget(self.eski_sifre_yeri)
v_box.addWidget(self.yeni_sifre)
v_box.addWidget(self.yeni_sifre_yeri)
v_box.addWidget(self.sifreyi_degistir)
v_box.addWidget(self.yazi)
v_box.addWidget(self.girise_don)
v_box.addStretch()

h_box = QtWidgets.QHBoxLayout()

h_box.addLayout(v_box)
h_box.addStretch()

self.setLayout(h_box)
self.setWindowTitle("Şifremi degistir")
self.setGeometry(200, 200, 600, 600)

self.girise_don.clicked.connect(self.giris1)
self.sifreyi_degistir.clicked.connect(self.sifre_degistir1)

def giris1(self):
anaekran.show()
self.close()

def sifre_degistir1(self):

eski_sifre = str(self.eski_sifre_yeri.text())
yeni_sifre = str(self.yeni_sifre_yeri.text())
eski_sifre_hashing = hashlib.md5(eski_sifre.encode('utf-8')).hexdigest()
yeni_sifre_hashing = hashlib.md5(yeni_sifre.encode('utf-8')).hexdigest()

baglanti.cursor.execute("select * from üyeler where anaşifre=?", (eski_sifre_hashing,))
data = baglanti.cursor.fetchall()

if (len(data) != 0):
baglanti.cursor.execute("update üyeler set anaşifre=? where anaşifre=?",(yeni_sifre_hashing, eski_sifre_hashing))
baglanti.cursor.execute("update şifreler set anaşifre=? where anaşifre=?",(yeni_sifre_hashing, eski_sifre_hashing))
baglanti.baglantı.commit()
self.yazi.setText("Şifreniz başarıyla değiştirildi")
else:
self.yazi.setText("İşlem başarısız")


app = QtWidgets.QApplication(sys.argv)

baglanti=Baglanti()
anaekran = AnaEkran()
ıslemler = Islemler()
sifreuret = Sifreuret()
sifresakla = Sifresakla()
sifredegistir = Sifredegistir()


sys.exit(app.exec_())



S
7 yıl
Yüzbaşı

Olmamış. Sifreuret, Sifresakla, Sifredegistir diye class adları olmaz. Class bir grup fonksiyonu topladığın bir modül değildir. Modül başka.



< Bu ileti mini sürüm kullanılarak atıldı >

O
7 yıl
Onbaşı
Konu Sahibi

Nasil yapabilirim peki?



< Bu ileti mobil sürüm kullanılarak atıldı >

S
7 yıl
Yüzbaşı

Onu bu işin okuluna gidip öğreneceksin. Burası okul değil, ben ders vermiyorum.



< Bu ileti mini sürüm kullanılarak atıldı >

O
7 yıl
Onbaşı
Konu Sahibi

Gidiyorum zaten.Classlar modul mu diye bir sey demissiniz.Evet moduldur.Python da yazilan hersey moduldur ve objedir.OOP hakkin da fazl bilgim olmadigi icin yardim istemistim.Cok ters bir cevqp verdiginiz icin tesekkurler.



< Bu ileti mobil sürüm kullanılarak atıldı >

O
7 yıl
Binbaşı

Dostum kodlarına bakamıyorum ama oop demek nesne yönelimli programlama demektir yani bir nesne üretir ve onu türetirsin.

Yani o yüzden izleyip okuyup öğrenmen lazım. Dur sna bir kıyak geciyim bilge adam oğretmenlerinden birinin OOP ders video serisi

Videoyu izlemek için tıklayınız

biride @seyfi84 gereksizini banlasın ya anca boş mesaj ve trollük yapıyor.





< Bu mesaj bu kişi tarafından değiştirildi OzMeN OzzY -- 1 Mayıs 2018; 15:39:15 >


Bu mesajda bahsedilenler: @seyfi84
O
7 yıl
Onbaşı
Konu Sahibi

Teşekkürler.Farkli classlardan nesne uretip birbirleri icinde bu nesnelerden yararlandim.Bu videolara da bakayim.Yardim icin sagol.



< Bu ileti mobil sürüm kullanılarak atıldı >

T
7 yıl
Yarbay

Nesneye yönelik tasarım büyük uygulamalarda* ve kütüphane yazılımlarında** (software library) mantıklıdır. Burada Qt kullanan bir vt sorgulama ekranından başka birşey görülmüyor o yüzden herşeyi class'lara dökmek cok isabetli değil, öğrenme açısından da. Bu arada forumun syntax highlighting özelliği olmaması ve tüm kodları satırbaşlarına getirmesinin de etkisiyle Python kodu aşırı dolu ve tekrar edici görünüyor.

* Örneğin bir havalimanının tüm yolcu ve uçak işlemlerini takip eden bir yazılım projesi gibi.

** Örneğin Java Collections Framework veya Microsoft Foundation Classes / MFC gibi.

Modül ve Class birbirine yakın fakat farklı şeyler. Class bir kod içindeki blok iken Modül ayrı bir kod bloğu. Birisi nesnel programlama iken diğer modüler programlama.https://duckduckgo.com/?q=class+vs+module+python&ia=qa DuckDuckGo'da bakarsan konuya ilişkin instant answer var.

Ancak bu başka, seyfi84 'in sanki bir patron veya bir babaymış gibi cevap vermesi başka.





< Bu mesaj bu kişi tarafından değiştirildi Tuğkan-0153 -- 8 Mayıs 2018; 20:18:58 >

< Bu ileti mini sürüm kullanılarak atıldı >

O
7 yıl
Onbaşı
Konu Sahibi

Odev nesneye yonelik olmak zorunda oldugu icin classlarla yazdim.Tessekurler



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
T
7 yıl
Yarbay

Ödev mi? Baştan belirtsene onu.



< Bu ileti mini sürüm kullanılarak atıldı >


Bu mesajda bahsedilenler: @ogulcankarayel
B
7 yıl
Onbaşı

Nesneye yönelik dediğimiz şey çok daha farklı bir şey aslında. Ama okul açısından olmuş mu, olmuş. Hoca puan verir mi, tipik bir anadolu okuluysa çok büyük ihtimalle verir.



O
7 yıl
Onbaşı
Konu Sahibi

Aynen ödev için.Nesneye yönelik şekil de olacak dedi.Sağolun yardımlar için



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.