From a76f7510e402fb6ce1295c5542b7f602f44a961c Mon Sep 17 00:00:00 2001 From: Ramkumar Rajanbabu Date: Sun, 10 May 2020 08:33:58 -0700 Subject: [PATCH 1/6] updated wsgi file --- wsgi_1.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/wsgi_1.py b/wsgi_1.py index 85498d1..7805314 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 898ae894c8e4bcc30444b005b8e9c7e124f3b977 Mon Sep 17 00:00:00 2001 From: Ramkumar Rajanbabu Date: Sun, 10 May 2020 09:16:35 -0700 Subject: [PATCH 2/6] working on bookapp --- __pycache__/bookdb.cpython-36.pyc | Bin 0 -> 1591 bytes bookapp.py | 52 +++++++++++++++++++++++++++--- 2 files changed, 47 insertions(+), 5 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..9486d1570c68ddab6cefe778053240cb95c3a98f GIT binary patch literal 1591 zcmaJ=&2Aev5Z+z=M0RYaPSP|63Y0k%umDTgmE<3}t`S*E>;|%#iw@q0VAF6-GRF>6ORR zPm6mYQ*j`o@qP}TRyv2gl|Gr%Q8wwR@?Izc9IAa#uC0rX)DE-kh)$KxTG6mS%g-H5 znsZSABe?`Z15jBImUG`pmp=;-=&*X}QyUuEwU;LR0t$EO0AKdWb=1s&#-QH?3&YG8 z0cVRQ51;YA&|PO>S$4X5JF2-oDduJc-{&}@zCT;^{Ya1`)cTU|ze{j9zcC2piVmkM za7!3`x@&am24BH0P4CK564%6r*<1gDMOeAE5PPEQ2AcdK;+Xy4%I{ z;psFy$Bd&R8isTr5`ACHn%3%MndQ}ZKhjI9Q7n41BzaAb`H(T z;wfrNXv80ohbUnN?-c@X%OI#1(|Zj_oTGy>YKaM_)3o?pBpikT*ilIIuZcUM@kGcG zyeI||M-k9*MOdxsR;sRB-ATW1jOXzx|HW(3fJQw?y<$l7++w=)LJT=N6jY{^r{7(X z(S#Y%bFzU>X&^X3&*mwotGX<12~d`R^ZItFnl8V5MOhe5(J|n{X{iy?-w@O$hAOZP z)ZiRL+0Q9gfdqaxPz#?!4>VK&4U$&Rh7@q%K?Ep+8$?v@qUTaX=mm^1FcD#{3vrAU zFh9rYR$On(+p1J*X}LiNgBdTqp(>=BY0(F+fi)bW^_M{`H0Y|kfxLPhcwTF8BIyJj zCHy9zv!RHvD&{&FMm#MlT2!^DX|bv2Pj|K%{aZs|W+or1#j*7- IpZWjuUwK}iz5oCK literal 0 HcmV?d00001 diff --git a/bookapp.py b/bookapp.py index d2284c6..7bb7123 100644 --- a/bookapp.py +++ b/bookapp.py @@ -1,4 +1,5 @@ import re +import traceback from bookdb import BookDB @@ -10,14 +11,55 @@ def book(book_id): 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')] + headers = [("Content-type", "text/html")] + 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 1aa110fc7e5efcd2a3b8b9ed8e0c06cd7aff63ba Mon Sep 17 00:00:00 2001 From: Ramkumar Rajanbabu Date: Sun, 10 May 2020 09:32:19 -0700 Subject: [PATCH 3/6] changed --- __pycache__/bookapp.cpython-36.pyc | Bin 0 -> 1760 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 __pycache__/bookapp.cpython-36.pyc diff --git a/__pycache__/bookapp.cpython-36.pyc b/__pycache__/bookapp.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a167affe297c0a175140023fe9c87bc45b37423c GIT binary patch literal 1760 zcmZuxUys{F5Z_&|9p~SHD0j4dIHE$OMu_I1hlEf#!S!0MRHTT4u2=!f=iMYu96Ri8 z?k=g#Lj$iB;+ZeN8;^Vzzw*?ta8JxQy;4=!+L_tencdmn&djZ5v-bOqzkjqHLjEBy zeH`S^VCV#hAcDrkTXX7Bn6sEoEzhDvS}WplVF~^V@oZrW2e>0D!UbLtRZ#=(%BrYO zm>Pp;Bd$&BUL8E^qA50{yRy87Y>b;LLgAc;r2X16IFt0+v~c#*baJpCQdGc)oWZya zL%To(&Bzu3AJ$u5?T$X!3tGqE(mIXIs1=FUb=~cN_D|BLUIkbDNGJ;&OLG3@?N9pO zX{mI7GM@&je~^arsZ5OSe-W9(`Eh@K>d!*yhv{5t>F?a?$5QJw@ppFnr+OImam!#f zyE$7F9OWtoh7l5~Y@i{E_#vLCC?h`v!H_XsksNLy*pTH^SUEe}&d34zVJo*XI%XLg zTLY3=Pw9$M^3&BLf?C0GChRfKKo2)}ddp3``B#h9K185LG9HwdUh?id-dnc2akSSB zS|cR~pI+-=l%2JGct1O!u!Y=KbAnFYugu3u^R-;?A zMpXkeFJ2q*s>3KT>w{p3p@RMaXk`SDU@JPdkme*K!n#6o2Am7>D+AeDG%}i@#E(dF znG?e&HT4aJB%;LFPw4j~VUI}0Gi$&AN4wW%1u0`bryYf<_6$keDWfVE3R@c$&4A6~ z$Q15NkN9#;9w(&Rp66sX;erjj6XlAC@Tw0@eUpmJs~~f~XH^&X(C?7a#&q1X(diC*TuT zT{H9vH7v7Mw9j&$+i-dNDajqd^9q2p4CqY_VdoX$fSetnLMu=d1g8zGmX9K*PnlT=-=zzeXw*s+}UY8xW8=f?(DXDscGF!=ZRRpftmke zx=#BmAA#vT*ij`x+YcMt&P?)JP~lS*7UWN1!S014lQ0#s z?G_c8oJ1;3ybWyvWqe45S(<3+RYo!p(3}*$u-Zbhi3DrHbHLcl^{a_ghfax_YT+k|gl2S8N6;rOPEgmu z)U&iY@tWnCK42%|=$CG2;cjIYal6x0%wxHS6{-;$Xd|q_9Lwcy-M!>)LCwJbFW(-h AeE Date: Sun, 10 May 2020 09:39:36 -0700 Subject: [PATCH 4/6] ran file not working --- __pycache__/bookdb.cpython-36.pyc | Bin 1591 -> 1591 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/__pycache__/bookdb.cpython-36.pyc b/__pycache__/bookdb.cpython-36.pyc index 9486d1570c68ddab6cefe778053240cb95c3a98f..788815f79d9655a9bfb1cc8a87a3adacca931e15 100644 GIT binary patch delta 16 Xcmdnavz>?Cn3tDpqt1?v>;`NACsYJz delta 16 Xcmdnavz>?Cn3tE!<@J`0>;`NAD8B@@ From eb1bfd9e23c7f149186cf77538238b1b7ca660e6 Mon Sep 17 00:00:00 2001 From: Ramkumar Rajanbabu Date: Sun, 10 May 2020 09:42:02 -0700 Subject: [PATCH 5/6] not work --- __pycache__/bookapp.cpython-36.pyc | Bin 1760 -> 1760 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/__pycache__/bookapp.cpython-36.pyc b/__pycache__/bookapp.cpython-36.pyc index a167affe297c0a175140023fe9c87bc45b37423c..7d45b850dfede8b5187fce1ddded32e5836d80e2 100644 GIT binary patch delta 255 zcmaFB`+%3tn3tDpqs~OOr;N8IzA0d2n;gq{fbrI3IVJ}IHUKytDjs{-FGuC)B3+{BXj)QaRHuE{y9R_bCPSqTs!4kCDg#4WbslEjkIVid=m zWwm2epUlH%tgZl7l9ZpHosv|<1k%I-BEZfEJ4zD7RiB*3rpl-}xra?1=)Ns%Isg$8 BH(US! delta 255 zcmaFB`+%3tn3tDplEy@~r;Je(-xM&iPL5?fz!)`Ij>$oQm4Shwh#5|>OwMCcV&s`T zk*QG%B=w6?zlae?zXTDQY(+dEm8_F>n8O)aCbux_Gm3BC!d%QKE&&pk1gYV^#hjj6 zQX~u#5T9(vs=yb;m6l(Wn^+Q`T9I7DF*%3TN?imbD+VG&K?FCDh+-=)Nh~QXMsdtp zRy#)J$vkYv>T+NuN%{HNDM>|4AWiHb0_=RSqr^d6<;iJms*I|Wd)U;0?%Tqq0|0Jg BG=%^F From 59cebe4b4423bb785b5a9837b259f632ed18b5f9 Mon Sep 17 00:00:00 2001 From: Ramkumar Rajanbabu Date: Sun, 10 May 2020 10:01:36 -0700 Subject: [PATCH 6/6] completed book app --- __pycache__/bookapp.cpython-36.pyc | Bin 1760 -> 2015 bytes bookapp.py | 17 +++++++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/__pycache__/bookapp.cpython-36.pyc b/__pycache__/bookapp.cpython-36.pyc index 7d45b850dfede8b5187fce1ddded32e5836d80e2..e515886d3295cedb0ee0e32f605293c570b20ea8 100644 GIT binary patch delta 792 zcmZWn!EVz)5cRGT*V!a(1Sl;ohft}sMxdyQkSbU#5#WG?0-`r0h&HuTyK&-ZcEf=t zs(>p(iu?^6IKzPhAHmrN;L0z+g;^J9DYo|Q%YjaOtwr_?tFHaLpDBvZ0)_KhihLv{?8cAkG`JlygQRHWiy z#+w*3u0$^mJl4R6EAY4qy;~C%Ccv8*a^-smBG0h_6Mopls(;EKPI_@9!{9{6_|MVr zrvG~G?X)|`10vZQovg&0qp#wk5kkkcUxrL10X=g0g z)Qv{{BrA2qFt`hlKxXw57z*W@*+MT#2HnViTo{YJAS>wfodKo!&j$|J=%QYdAsD3s zWyB^03U>O0d~!g$omu$=nOR~y4n{s$c$i+JZc8^p=`U!Ctf=XwgP~kRFpy3YGEygu zKrNlq7mn`xL7G5t|E|HcpoSYxy<)Bwp@?z%$lSPbin{`VOyXxjcPv!6jz#hufj7Y^Hr{om@^|TPyrn jS03fY*?gGz6Z|2yA+nBu&e00BsC~vR+h^@M3dHvpfBv}H delta 537 zcmYjOO=}cE5bclI-p|;p-neORS6OkLHb|( z`D%!WTp>BqWgL_*#rL~G?Cu2RDmODWsA91&r)5yDYnT_#Z^?Y58jXL@!YH&z%clN= z?DMYwEI$tEub+G!sP7*Hxq>c!u*ya>O2W!sF*i>EYViBf_|c!n=)TeGfU)&#X^s|! zo8Cd%-a=qPa4l~N%{v%%c$dcl2IuFI<^3V$ju7%B$T!BpZ6XH#v3kH`f1(7PO%3QJpqWTxZa~Me zH|@0-IfjSQ!tyY+2G9zQ&@2u7SF17I6x5S>U7pR%HciS>ra 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():