From ff3ab78d564c4c47a7d61bedc68d053c21e262e8 Mon Sep 17 00:00:00 2001 From: Nick Lenssen Date: Sun, 2 Aug 2020 14:56:13 -0400 Subject: [PATCH 1/2] Added environment variables --- wsgi_1.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/wsgi_1.py b/wsgi_1.py index 85498d1..b5e09ba 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", - month="bbbb", - date="cccc", - year="dddd", - client_ip="eeee" + path=environ.get('PATH_INFO',default), + month=datetime.datetime.now().strftime('%B'), + date=datetime.datetime.now().day, + year=datetime.datetime.now().year, + client_ip=environ.get('REMOTE_ADDR', default), ) status = '200 OK' From d0c2fb1f3807d9edcad39c28f1a75a744f86d6f7 Mon Sep 17 00:00:00 2001 From: Nick Lenssen Date: Tue, 4 Aug 2020 20:04:31 -0400 Subject: [PATCH 2/2] activity commit --- __pycache__/bookdb.cpython-36.pyc | Bin 0 -> 1585 bytes bookapp.py | 65 +++++++++++++++++++++++++++--- 2 files changed, 59 insertions(+), 6 deletions(-) create mode 100644 __pycache__/bookdb.cpython-36.pyc diff --git a/__pycache__/bookdb.cpython-36.pyc b/__pycache__/bookdb.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..374fac4d3ffdfd00fbbfa93ceb05101570bf98c8 GIT binary patch literal 1585 zcmaJ>&2Aev5azCaB0IJdr%4(E1Sb!z%O7f3f*N7}7F@oALVg~^P6auxRBu2ZW zLawZ8;hdan554CF`ar$t+BfJirw+Nc>-11AI2t!htAG1B*Kz2RQ&e0F;LA751??GZ{T&E~zy@_(>QMI+>SRnjI3XtZ<>&bWDM#&t zzyVXUjIY@(*!nSu)GtQwolDe4m(EA$!U50B@mDT+usk&`7{mZwpkJPRbYgVj#9+P# zkYPK&xxc#~vf%8_b1{!Y28zq6GVwsoQXa(f0wpo&5p6Hap31=GA4uJS<4ddZRx_n5 zf(Jtx5*;$3H4~LK)1z39D<`vfC3%&%2W?{r3Wx+uRNZ8S=SdS=gWFQwN)1DhgnvmOz-) zbruA2AGpc#R{;VO)+}=xLrb{vGE`qc$u3=B$~nG{ni;Sd^t)hTIr&e(`J&CE%SB(B zezUNUldRs3YHyE=xp|@66(nNa?tHP^jU=6fMqlc7KTJrN-dF@`#e_55-x3y|=@*l_ z#aD0&d1c-tKedKTsoBX4KR1<$IdHg(-;gnF>@F5FB zHjoo@U(DL3>SVd@iO#|}^=GP+ClhE9l^k3p)0YaL%6>d0ia{ot55z7$lv5l_df<`g9*M!6cJ}Be1oC-EeiZA3uz!(5K8q5AQamOs4N;QHn%7G$L1aw>x zR+MX2i_N20mqh z6cj&CQ%+V*S-cXUECJ_@?NTjSe*K2=Fr48dz(tZ$Gi1MFs7(x2;2XFp1c9=j!+-_~ z_}##5at=Mv)B!X|Qac+mz(EEPpbTyhF|~_dC>h~ba-x8VhzL`NBcg%%6suSD{4Ia0 zTCFGLCZ!xky!4L2pTICJ`@l7@Mnb&)I*6qKUGp}u-)I2OYfV8Fo8rTXxXI^iC?lea zxlV>t--xOaH6!XqY?}Eqooz?|))3g4Fq1GZ?4<*=Z^vOBUahRSj(PH#|3Ci$A7-3} literal 0 HcmV?d00001 diff --git a/bookapp.py b/bookapp.py index d2284c6..960be07 100644 --- a/bookapp.py +++ b/bookapp.py @@ -1,4 +1,5 @@ import re +import traceback from bookdb import BookDB @@ -6,19 +7,71 @@ def book(book_id): - return "

a book with id %s

" % book_id - + page = """ +

{title}

+ + + + ISBN +
Author{author}
Publisher{publisher}
{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 wsgiref.simple_server import make_server