-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
125 lines (84 loc) · 3 KB
/
main.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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
from sqlalchemy import create_engine, Table, Column, Integer, String, MetaData, ForeignKey, select
from models import User, Address
# datatabse in memory - does not exist after program finishes running
memory_engine = create_engine('sqlite:///:memory:', echo=True)
# database in filesystem - keeps existing
file_engine = create_engine('sqlite:///db.sqlite3', echo=True)
metadata = MetaData()
users = Table('users', metadata,
Column('id', Integer, primary_key=True, autoincrement=True),
Column('name', String),
Column('fullname', String),
)
addresses = Table('addresses', metadata,
Column('id', Integer, primary_key=True, autoincrement=True),
Column('user_id', None, ForeignKey('users.id')),
Column('email_address', String, nullable=False)
)
metadata.create_all(memory_engine)
metadata.create_all(file_engine)
# statements
my_user = User(name='PR', fullname='Pablo Rivera')
my_other_user = User(name='goishen', fullname='goishen the barbarian')
insert_user = users.insert().values(name=my_user.name, fullname=my_user.fullname)
insert_other_user = users.insert().values(name=my_other_user.name, fullname=my_other_user.fullname)
# execute insert statements statements
memory_conn = memory_engine.connect()
file_conn = file_engine.connect()
result_one = memory_conn.execute(insert_user)
result_two = memory_conn.execute(insert_other_user)
result_three = file_conn.execute(insert_user)
result_four = file_conn.execute(insert_other_user)
print(result_one.inserted_primary_key)
print(result_two.inserted_primary_key)
print(result_three.inserted_primary_key)
print(result_four.inserted_primary_key)
# execute select statements
select_users = select([users])
users_result = memory_conn.execute(select_users)
users_list = []
for row in users_result:
users_list.append(
User(
id=row[0],
name=row[1],
fullname=row[2]
)
)
for my_list_user in users_list:
print(my_list_user.id, my_list_user.name, my_list_user.fullname)
# select where
select_where = select([users]).where(users.c.name == my_other_user.name )
for row in memory_conn.execute(select_where):
print(row)
# delete
delete_where = users.delete().where(users.c.name == my_user.name)
memory_conn.execute(delete_where)
# select again to see that the user was deleted
select_users = select([users])
users_result = memory_conn.execute(select_users)
users_list = []
for row in users_result:
users_list.append(
User(
id=row[0],
name=row[1],
fullname=row[2]
)
)
for my_list_user in users_list:
print(my_list_user.id, my_list_user.name, my_list_user.fullname)
# check database in file
select_users = select([users])
users_result = file_conn.execute(select_users)
users_list = []
for row in users_result:
users_list.append(
User(
id=row[0],
name=row[1],
fullname=row[2]
)
)
for my_list_user in users_list:
print(my_list_user.id, my_list_user.name, my_list_user.fullname)