From dabcb2264dfae2c3cf3a48c3e227a81b1f5b37ea Mon Sep 17 00:00:00 2001 From: Ian Mayther Date: Wed, 26 May 2021 06:15:06 -0700 Subject: [PATCH 1/4] Got the month to work on wsgi_1 --- wsgi_1.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wsgi_1.py b/wsgi_1.py index 85498d1..971e014 100644 --- a/wsgi_1.py +++ b/wsgi_1.py @@ -22,7 +22,7 @@ def application(environ, start_response): response_body = body.format( software=environ.get('SERVER_SOFTWARE', default), path="aaaa", - month="bbbb", + month=datetime.datetime.today().strftime("%b"), date="cccc", year="dddd", client_ip="eeee" From 3c367178db4d9ab351f837c33e2183621e84ea6e Mon Sep 17 00:00:00 2001 From: Ian Mayther Date: Thu, 27 May 2021 06:09:11 -0700 Subject: [PATCH 2/4] Completed update of wsgi1 --- wsgi_1.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/wsgi_1.py b/wsgi_1.py index 971e014..7229936 100644 --- a/wsgi_1.py +++ b/wsgi_1.py @@ -21,11 +21,11 @@ def application(environ, start_response): response_body = body.format( software=environ.get('SERVER_SOFTWARE', default), - path="aaaa", + path=environ.get('PATH_INFO', default), month=datetime.datetime.today().strftime("%b"), - date="cccc", - year="dddd", - client_ip="eeee" + date=datetime.datetime.today().day, + year=datetime.datetime.today().year, + client_ip=environ.get('REMOTE_ADDR', default) ) status = '200 OK' From b176f8a0c55c33591290b373be8c9edb55467825 Mon Sep 17 00:00:00 2001 From: Ian Mayther Date: Mon, 31 May 2021 08:25:29 -0700 Subject: [PATCH 3/4] Completed the bookapp --- bookapp.py | 65 +++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 60 insertions(+), 5 deletions(-) diff --git a/bookapp.py b/bookapp.py index d2284c6..b7399c8 100644 --- a/bookapp.py +++ b/bookapp.py @@ -1,4 +1,5 @@ import re +import traceback from bookdb import BookDB @@ -6,18 +7,72 @@ def book(book_id): - return "

a book with id %s

" % book_id + page = """ +

{title}

+ + + + +
Author{author}
Publisher{publisher}
ISBN{isbn}
+ Back to the list + """ + book = DB.title_info(book_id) + if book is None: + raise NameError + + return page.format(**book) def books(): - return "

a list of books

" + all_books = DB.titles() + body = ['

My Bookshelf

', '
    '] + + item_template = '
  • {title}
  • ' + for book in all_books: + body.append(item_template.format(**book)) + body.append('
') + + return '\n'.join(body) + +def resolve_path(path): + funcs = { + '' : books, + 'book' : book, + } + + path = path.strip('/').split('/') + + func_name = path[0] + args = path[1:] + + try: + func = funcs[func_name] + except KeyError: + raise NameError + + return func, args def application(environ, start_response): - status = "200 OK" headers = [('Content-type', 'text/html')] - start_response(status, headers) - return ["

No Progress Yet

".encode('utf8')] + try: + path = environ.get('PATH_INFO', None) + if path is None: + raise NameError + func, args = resolve_path(path) + body = func(*args) + status = "200 OK" + except NameError: + status = "404 Not Found" + body = "

Not Found

" + except Exception: + status = "500 Internal Server Error" + body = "

Internal Server Error

" + print(traceback.format_exc()) + finally: + headers.append(('Content-length', str(len(body)))) + start_response(status, headers) + return [body.encode('utf8')] if __name__ == '__main__': From 6c861dbf58de4543feec059bf3f3c1089ea92850 Mon Sep 17 00:00:00 2001 From: Ian Mayther Date: Mon, 31 May 2021 08:29:28 -0700 Subject: [PATCH 4/4] Added zipped file --- wsgi_bookdb-S1.zip | Bin 0 -> 1739 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 wsgi_bookdb-S1.zip diff --git a/wsgi_bookdb-S1.zip b/wsgi_bookdb-S1.zip new file mode 100644 index 0000000000000000000000000000000000000000..46831e5ace760f0085e4927a6b08c1a7420da820 GIT binary patch literal 1739 zcmZ{lX*3%M7ltFj)KZC-3OZ@Dsig#i+NxDSGWlqWhNh&9HHal>Yb)9!l*SOt*tJS% zt)*~RtZ;5A*cGZj;Bw%JO zKQ1SfmW8RX3s`FFw;MNm#?RJ&Oi=mqaJ@LuRh_usVV%V6JoE4dvi2A?8R0Ro-czCz zPqcV4Z+5ADK@%BUlSX9NOrOxh#e+kOOM8p9(~VySotS=X5!9NsOXZI6Y)j}g(5imi zzEmsc^?cZBNoLJXp=_M01Wm+B@8$%8vOZ_ zdDiQ+&5hHEB&~cT;KO@s@2`D=g}YH2mLtOw%ZSmNHIaMI^!ke~jcfvMZJsi&jwsXU zyHJp%s32RCho}(1^-Z28&QEw5I1Ge2rO<+VmtEkS4~rM))RL6JvCw@5QtR`~A*CzT zbha?VS!;8s?l+%6cF8;A5&hTR`OE!#qx|F;KIaKpDypaC3@!#9;p1|2uG%09`<3%J z2lByBUM}3w=ErIqS-u__`Tk^ow)u}B1|Q}$i6kSvQ&ON6#h|oXV($#yg}!yDxh^=mKFdO$?To?`x~=45VcM^WY*ib6Ub{k23!0C+8t`MRTV|KqZSAN00jX6p}#?MaXREI8aM7aei;&` zvwceND_nLC-W@1qsOvWj$$W!Q3O@3*v@q#c{Fr1TsnN5$CD7*cS&w`iJdu*28Nkfo zgdok++2nKco*`rI2}|dnC@`R+Izmg74#Y&v%5{pP=(SF~CBv9CHI$C=$&5OgvzO$)O{sA?OhksAA5VpAUBO%-(LY~P6UrzJ7u z3HPFaX|%AHZFb0t2*Um3QR(^o*q`DPP)|(S+JSvEQsvq?SBe?mOPW$8=(Kyr%-u)A z+!|vq(TE=Lldv78`@s#9|L~!wvMrN(hF}`93!gaD8rDD@FUGeh4tNzbPI09 z6bRh}2`-ABRDK1u@%TYbh(9~G73U-H;Z)aPIc*wMZi>@=Vbl>??K|jIXghS-|0zC` zruJ4oaLj&it7%I?{#q67CfP;19m3N4C@q2BwU?|{u9sN5lK+)D19HnbfZjvD?#i~8 z`t(D}?E+@6&