1
+ from sqlalchemy import create_engine
2
+ from sqlalchemy import MetaData
3
+ from sqlalchemy import Table , Column
4
+ from sqlalchemy import String , DateTime
5
+
6
+ class DataBaseInitializer (object ):
7
+ """ This initializes the database and give basic facilities sql queries
8
+ for the table"""
9
+
10
+ def __init__ (self ):
11
+ try :
12
+ self .engine = create_engine ('sqlite:///test.db' )
13
+ except Exception as e :
14
+ print ("Unable to load the database! " + str (e ))
15
+
16
+ def read (self , username = None , password = None ):
17
+ if username :
18
+ result = self .engine .execute (
19
+ 'select Username, Password from PasswordManager where\
20
+ username=:uname' , uname = username )
21
+ for row in result :
22
+ print (row )
23
+ elif password :
24
+ result = self .engine .execute (
25
+ 'select Username, Password from PasswordManager where\
26
+ passc=:password' , passc = password )
27
+ for row in result :
28
+ print (row )
29
+ else :
30
+ result = self .engine .execute ('select * from PasswordManager' )
31
+ for row in result :
32
+ print (row )
33
+
34
+ def write (self , uname , passcode ):
35
+ if uname == "" or passcode == "" :
36
+ print ("Fill Username and Password fields" )
37
+ return None
38
+ else :
39
+ self .engine .execute (
40
+ 'insert into PasswordManager (Username, Password) values\
41
+ (:name,:passc)' , name = uname , passc = passcode )
42
+
43
+ def remove (self , uname ):
44
+ if uname == "" :
45
+ print ("Error! supply username to remove.." )
46
+ return None
47
+ else :
48
+ self .engine .execute (
49
+ 'delete from PasswordManager where Username=:name' , name = uname )
50
+
51
+
52
+ class TableOperator (DataBaseInitializer ):
53
+ # TODO: More Table operations
54
+
55
+ def __init__ (self ):
56
+ self .interface = DataBaseInitializer ()
57
+ self .metadata = MetaData ()
58
+
59
+ def PasswordTableGenerator (self ):
60
+ self .RecordTable = Table (
61
+ 'PasswordManager' , self .metadata ,
62
+ Column ('Username' , String ),
63
+ Column ('Password' , String , primary_key = True ),
64
+ Column ('SiteInfo' , String ),
65
+ Column ('timestamp' , DateTime ),
66
+ )
67
+ self .metadata .create_all (self .interface .engine )
68
+
69
+ def writer (self , username , password ):
70
+ self .interface .write (username , password )
71
+
72
+ def reader (self , username = None , password = None ):
73
+ self .interface .read (username , password )
74
+
75
+ def remove (self , username = None ):
76
+ self .interface .remove (username )
77
+
78
+ def dropper (self ):
79
+ self .RecordTable .drop (self .interface .engine )
80
+
81
+
82
+ def main ():
83
+ operator = TableOperator ()
84
+ operator .PasswordTableGenerator ()
85
+ operator .reader ()
86
+ #operator.writer('Chirag', 'qwertyuiop')
87
+ operator .reader ('Chirag' )
88
+ operator .reader ('qwertyuiop' )
89
+ #operator.remove('rasadajseq')
90
+ #operator.dropper()
91
+
92
+
93
+ if __name__ == '__main__' :
94
+ main ()
0 commit comments