File tree 4 files changed +20
-13
lines changed
app/ch10_using_sqlachemy/final/pypi_org
4 files changed +20
-13
lines changed Original file line number Diff line number Diff line change @@ -19,7 +19,7 @@ def global_init(db_file: str):
19
19
conn_str = 'sqlite:///' + db_file .strip ()
20
20
print ("Connecting to DB with {}" .format (conn_str ))
21
21
22
- engine = sa .create_engine (conn_str , echo = False )
22
+ engine = sa .create_engine (conn_str , echo = True )
23
23
__factory = orm .sessionmaker (bind = engine )
24
24
25
25
# noinspection PyUnresolvedReferences
Original file line number Diff line number Diff line change
1
+ from typing import List
2
+ import sqlalchemy .orm
3
+
1
4
import pypi_org .data .db_session as db_session
2
5
from pypi_org .data .package import Package
3
6
from pypi_org .data .releases import Release
4
7
5
8
6
- def get_latest_packages ():
7
- return [
8
- {'name' : 'flask' , 'version' : '1.2.3' },
9
- {'name' : 'sqlalchemy' , 'version' : '2.2.0' },
10
- {'name' : 'passlib' , 'version' : '3.0.0' },
11
- ]
9
+ def get_latest_releases (limit = 10 ) -> List [Release ]:
10
+ session = db_session .create_session ()
11
+
12
+ releases = session .query (Release ). \
13
+ options (sqlalchemy .orm .joinedload (Release .package )).\
14
+ order_by (Release .created_date .desc ()). \
15
+ limit (limit ). \
16
+ all ()
17
+
18
+ session .close ()
19
+
20
+ return releases
12
21
13
22
14
23
def get_package_count () -> int :
Original file line number Diff line number Diff line change @@ -27,11 +27,11 @@ <h2>New releases</h2>
27
27
Hot off the press: the newest project releases
28
28
</ div >
29
29
30
- {% for p in packages %}
30
+ {% for r in releases %}
31
31
< div class ="project ">
32
32
< div class ="title ">
33
- < a href ="# "> {{ p.name }} {{ p.version }}</ a >
34
- < div class ="desc "> THE DESC </ div >
33
+ < a href ="# "> {{ r.package.id }} {{ r.version_text }}</ a >
34
+ < div class ="desc "> {{ r.package.summary }} </ div >
35
35
</ div >
36
36
</ div >
37
37
{% endfor %}
Original file line number Diff line number Diff line change 10
10
@blueprint .route ('/' )
11
11
@response (template_file = 'home/index.html' )
12
12
def index ():
13
- test_packages = package_service .get_latest_packages ()
14
13
return {
15
- 'packages ' : test_packages ,
14
+ 'releases ' : package_service . get_latest_releases () ,
16
15
'package_count' : package_service .get_package_count (),
17
16
'release_count' : package_service .get_release_count (),
18
17
'user_count' : user_service .get_user_count (),
19
18
}
20
- # return flask.render_template('home/index.html', packages=test_packages)
21
19
22
20
23
21
@blueprint .route ('/about' )
You can’t perform that action at this time.
0 commit comments