-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdb.py
36 lines (29 loc) · 1.21 KB
/
db.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
from sqlalchemy.ext.automap import automap_base
from sqlalchemy.orm import Session, sessionmaker, scoped_session
from sqlalchemy import create_engine
from sqlalchemy import inspect
Base = automap_base()
database_username = 'root'
database_password = 'rootpassword'
database_ip = 'localhost'
database_name = 'hcov'
engine = create_engine('mysql+pymysql://{0}:{1}@{2}/{3}'.
format(database_username, database_password,
database_ip, database_name), pool_pre_ping=True, pool_size=50, max_overflow=100)
db_session = scoped_session(sessionmaker(autocommit=True,
autoflush=False,
bind=engine))
# reflect the tables
Base.prepare(engine, reflect=True)
# mapped classes are now created with names by default
print([i for i in Base.classes])
Virus = Base.classes.virus
MersEp = Base.classes.mers_epitopes
SarsEp = Base.classes.sars_epitopes
Sarscov2Ep = Base.classes.sarscov2_epitopes
Base.query = db_session.query_property()
def row2dict(obj):
return {c.key: getattr(obj, c.key)
for c in inspect(obj).mapper.column_attrs}
def result2dict(result):
return [row2dict(i) for i in result]