Skip to content

Commit 824ff10

Browse files
committed
Fixed SQLite & thread error / warning.
1 parent a764e67 commit 824ff10

File tree

4 files changed

+14
-5
lines changed

4 files changed

+14
-5
lines changed

apps/py/ch08_db/guitary/app.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
import os
2+
import sys
3+
4+
folder = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
5+
sys.path.insert(0, folder)
6+
17
import flask
28
from guitary.services import catalog_service
39
from guitary.data import session_factory

apps/py/ch08_db/guitary/data/context_session.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,4 @@ def __exit__(self, exc_type, exc_val, exc_tb):
1616
pass
1717

1818
self.session.close()
19+
self.session = None

apps/py/ch08_db/guitary/data/session_factory.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import sqlalchemy
44
import sqlalchemy.orm
5-
from sqlalchemy.orm import Session
5+
from sqlalchemy.orm import Session, scoped_session
66

77
from guitary.data.context_session import ContextSession
88
from guitary.db import db_folder
@@ -19,7 +19,7 @@ def global_init(db_name: str):
1919

2020
conn_str = 'sqlite:///' + db_folder.get_full_path(db_name)
2121
__engine = sqlalchemy.create_engine(conn_str, echo=False)
22-
__factory = sqlalchemy.orm.sessionmaker(bind=__engine)
22+
__factory = scoped_session(sqlalchemy.orm.sessionmaker(bind=__engine))
2323

2424

2525
def create_tables():

apps/py/ch08_db/guitary/services/catalog_service.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,13 @@
77
def all_guitars(style: Optional[str]) -> List[Guitar]:
88
with session_factory.create_session() as ctx:
99
if style is None or style == 'all':
10+
# noinspection PyUnresolvedReferences
1011
guitars = ctx.session.query(Guitar).order_by(Guitar.price.desc())
1112
return list(guitars)
1213

13-
filtered_guitars = list(ctx.session.query(Guitar)
14-
.filter(Guitar.style == style)
15-
.order_by(Guitar.price.desc()))
14+
# noinspection PyUnresolvedReferences
15+
filtered_guitars = list(ctx.session.query(Guitar)
16+
.filter(Guitar.style == style)
17+
.order_by(Guitar.price.desc()))
1618

1719
return filtered_guitars

0 commit comments

Comments
 (0)