-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathjson-demo.py
90 lines (75 loc) · 2.64 KB
/
json-demo.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
import json
import os
class User:
def __init__(self, username, password, email):
self.username = username
self.password = password
self.email = email
class UserRepository:
def __init__(self):
self.users = []
self.isLoggedIn = False
self.currentUser = {}
# load users from .json file
self.loadUsers()
def loadUsers(self):
if os.path.exists('users.json'):
with open('users.json','r',encoding='utf-8') as file:
users = json.load(file)
for user in users:
user = json.loads(user)
newUser = User(username = user['username'], password = user['password'], email = user['email'])
self.users.append(newUser)
print(self.users)
def register(self, user: User):
self.users.append(user)
self.savetoFile()
print('Kullanıcı oluşturuldu.')
def login(self, username, password):
for user in self.users:
if user.username == username and user.password == password:
self.isLoggedIn = True
self.currentUser = user
print('login yapıldı.')
break
def logout(self):
self.isLoggedIn = False
self.currentUser = {}
print('Çıkış yapıldı.')
def identity(self):
if self.isLoggedIn:
print(f'username: {self.currentUser.username}')
else:
print('giriş yapılmadı.')
def savetoFile(self):
list = []
for user in self.users:
list.append(json.dumps(user.__dict__))
with open('users.json','w') as file:
json.dump(list, file)
repository = UserRepository()
while True:
print('Menü'.center(50,'*'))
secim = input('1- Register\n2- Login\n3- Logout\n4- identity\n5- Exit\nseçiminiz: ')
if secim == '5':
break
else:
if secim == '1':
username = input('username: ')
password = input('password: ')
email = input('email: ')
user = User(username=username, password = password, email = email)
repository.register(user)
elif secim == '2':
if repository.isLoggedIn:
print('zaten login oldunuz')
else:
username = input('username: ')
password = input('password: ')
repository.login(username, password)
elif secim == '3':
repository.logout()
elif secim == '4':
repository.identity()
else:
print('yanlış seçim')