From a62253f61c11d11ec617565956d3fbaffd597b81 Mon Sep 17 00:00:00 2001 From: Laura Montini Date: Tue, 20 Sep 2016 16:13:23 -0700 Subject: [PATCH 1/2] commiting hw1 and hw2 --- .DS_Store | Bin 0 -> 12292 bytes Assignment/.DS_Store | Bin 0 -> 15364 bytes Assignment/Homework_1 - HTML/.DS_Store | Bin 0 -> 6148 bytes .../.DS_Store | Bin 0 -> 6148 bytes .../HW2 - Responsive Design.docx | Bin 14698 -> 17501 bytes .../assets/.DS_Store | Bin 0 -> 6148 bytes Labs/.DS_Store | Bin 0 -> 6148 bytes 7 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 .DS_Store create mode 100644 Assignment/.DS_Store create mode 100644 Assignment/Homework_1 - HTML/.DS_Store create mode 100644 Assignment/Homework_2 - CSS_ResponsiveDesign/.DS_Store create mode 100644 Assignment/Homework_2 - CSS_ResponsiveDesign/assets/.DS_Store create mode 100644 Labs/.DS_Store diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..a44a65889fb8a98912823dc2abcae04f38660768 GIT binary patch literal 12292 zcmeHMOH5o<82&$)()+M-DWzpbuv4)Fp#@YLixoN)q}F1J0`e#kXXc*5t(TbzcX+hX zgt&6iXyapL)P*jzy0OufkF8DYM$^Q{#>BYL=*Fe4{LejikPfggCQ9@ia?W?}|2XH& zHy`KnUx)}N7Tvpv>WRqUF43`h*rZ9n>>FA|WQj3?^ND6DNAo0jEN+O_2F-wGKr^5j z&wgUtF%$CjA;<>N9dejVP2L6`}$nzn|U1BQ2RfXZv!9!RAFv=1jY<$giK$w$^ zFcsmd!Z4NRRMi8bR752PR66^UGMq6L;i^KFPEhHDXk|nd3c}SnFBygtQVR8`8PE)D zWI+D8~5GW}Mwio>)FpD0=x^@VHnA7-yX7U@pIWDx1#@F9_+MacZ(@KfCCsi=xl>N4$$7 z7|-VY#ra$?Q4}jhX_*T03&sA>IN@=ww9PoqVjvz9oaily0ZtDbn8uY|dm9flw{;%r z?!9qqwNqo&T6N<~Uf^YXF}Ccv#kt9JkQF)C%gs)CuE-U=bDmf*YjDUM&86qXjeYf; zm9QIb&N7`3jcJ!xc_i=33^$Ck6L!)t&Psd#g5Xh^ttR`R>7oYUs`l4464YptV(Ig!oJ&+}#jWjki~7|u203Ayl4 zIw+ngh#aq7Q+<42Dq-7ye#A)`(dW9tHH@ZIi&8;Ts#9H@7QIJT>0|nguF>aooxY%N>3jN-exjf07y1nqs6-47;z*zYjkp7CID~d| zpbI_dMGAd5iD5j75sYFQ0_QM`0xsYpp2jn{gjete-oX{Tix2RL+EPVy%G02_FOB$= zueMTSAyT8esTv3Oocy=c_{}bh|ux^RD)LkM{JheUoKh-g*&*x>3Ri1yd44 zD9~~h#uK+SSoRp}O01MCyrf}gr_{H>;)y4c2W;Ds>QT1`oB6ha)vaz@+ic6JWbK+^ za7U+QJ3CmW%G-6svYZ&}Sb4keXKxiNmc704ty6hMYyVvJ>35B7XkYDAM&mT&46Y=GoTsJ3}^;41DXNN WfM!55pc&8%Xa+O`nt}f|1AhP$Eq0Xv literal 0 HcmV?d00001 diff --git a/Assignment/.DS_Store b/Assignment/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..692c7daf75fa31b079a85fea6b0ed6fc1c6f63c3 GIT binary patch literal 15364 zcmeI2Piz!b9LImZN5R>wO{XB*>Vi`X0ku^?BWfZ{+ifLjYYDqciz0QqGt{xOGtJI) zi=6gAh<}bGB%VANBV3ILXJeFjBQ#NtM$mZDgYo3S-*4WmVd;ADu#x8XHuJvk&+qr% z?|pXu?3*kA;OL68AHW0vgAP{YLYu_RZM#%z%! z_Y&-5rD~_z&`Ld&P`i?9S4_7UsNJdEO6}}a8(OtHU@|j}lg`}SykIgrwOfffpsiJM zAs_@=32f3;lb`?Nbjh^cGsu3H{IYb`q7qJtCLHMl^D z$}K+vsKWP=zNAz4TU;hPJJp6(9);TzcT)KwkN}ZP2y}oz>&x!p=8Nunp%(aIut*W` z^(pVVJMdM=6hc4<2mv7=1Ug9|-TzzZ{@;AClatF_LO=-oF9`hS{Xgvxl1)5i?cM?G z<<(K&zUC^aY^QAvt%*C?bod=W*{`hl<=7qZ{epMajb~)I#4s8b)61 zg~5rr*gX@o&AP6+*Q2l&k0p+CUL_2))z-S_uFfp8b9CITMWmUGajVDd-Ma0e?GHcF zH?a5F7hcIv9-FI#)v6oBQ86f2-8UQxXRPK@?i3@MujH2(T)(*F1eAAB+Q z(#sUkJ)xMJO@|{mbU0^^tdGF#G9#XQd?NSikv862%t`j1n$Ep8(x19s49I||3)6#a|qUHA|#!pHChT!Am)Dtrew;Rm=4 zzrt_u2mFOu?85=vgTr_b590{taU3Ub21_`Pi|FAyxP&pD#dCNb-^2Iu1H6DA;V1Yh zeukIuGJcNN@GJZpzrkQUR(<7z++s$FWg zdPY634k=rWs8Kbkit0_h5T&mwfRoLIrR}Fld(wZewRTBO2nYcoAOwVf5D)@FKnMr{ UAs_^VfDjM@LO=)zfsI7qZ_c(Dd;kCd literal 0 HcmV?d00001 diff --git a/Assignment/Homework_1 - HTML/.DS_Store b/Assignment/Homework_1 - HTML/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..21dc07c97503793be3f93b56315ccc144e8a8696 GIT binary patch literal 6148 zcmeHKIS#@=4733uB$||z`vrcmLhu4Uz}X>D1o~9Gi>EO@goFYO5)B$h_Ut;IjWR_X zi-<0+hq*{2A``fw+${9X?wj{)kQoKSamGd3L%Toi&gWCF`hCK-Yu#{i)1S z0V+TRr~nn90-qGH-V2*d0~x6R6`%r71?>A!;D$A^3-nJ1f{y^e5z=m0`z!%0mH^ho zE)W@*1{D}o%@IR`j(o|wn%D&fT{MRe%_nP4DC$qg`NhjcYak;PpaQQ73}f3^|6jpB z%>S<>?x+A2_$vi;v|KM2c%|&Ey_d6ITi_eG)!gA`SUUy5+cD7FF*eqYXI>O_#n!lA V6T3jCBkyz|e+En!8Ws4p0uNok6|w*T literal 0 HcmV?d00001 diff --git a/Assignment/Homework_2 - CSS_ResponsiveDesign/.DS_Store b/Assignment/Homework_2 - CSS_ResponsiveDesign/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..c32883842752acf742ff9e4a68f0123bb24f31f0 GIT binary patch literal 6148 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 TKsN=zFyJ8p=;?3#zmEPtd2^e} literal 14698 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 diff --git a/Assignment/Homework_2 - CSS_ResponsiveDesign/assets/.DS_Store b/Assignment/Homework_2 - CSS_ResponsiveDesign/assets/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..44e909c3013a05931800c1df26c68ac7f3243a04 GIT binary patch literal 6148 zcmeHKK~BR!3>-s2m3rxs<9>l3tg7+?J^*b{g(yU7)q8Gyo3YoRMk!YgXe`;YnYDM7 zIm9slTb;UlUj5jV{CRPea0VyB_q<|Fgp6xbYG*pxVQa}p)DB$0R zLU*i*L&NxVFvJKzoRJRWI%WxCae`PAhlXTm)=G)3)N;hIR!+WTUQHYtwsKewAC@;; zPAC?)^ZXL&u-Z^j3P^#m0zP}wmfrs#=)cVWo+Fb2QsAE|V6*k(dc~K^-a2_r@3n>g sME^GCMmj^ZVq&ynK6op>JIgD+=6+2a8b&$!C@1Piz;%&Hfxl4T3yXjtmH+?% literal 0 HcmV?d00001 diff --git a/Labs/.DS_Store b/Labs/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..bb2b30906022f945d457372264397dac8a456e4c GIT binary patch literal 6148 zcmeHKyH3ME5S)b+5ouDUydR)I{J<$BUAp`Lgp`p|AbMAP7oW!LLnx6I$qfyfwRY!j zy>phQ@OlB*`t$e%ECI~vj`;F0Hoxyavb)L{k986;te$K&p;$bf=eH<_^+ZJ}AO)@! zxX Date: Thu, 6 Oct 2016 07:41:01 -0700 Subject: [PATCH 2/2] committing lab 9 --- .DS_Store | Bin 12292 -> 12292 bytes Labs/.DS_Store | Bin 6148 -> 15364 bytes Labs/Lab9-FlaskSurvey/.DS_Store | Bin 0 -> 6148 bytes Labs/Lab9-FlaskSurvey/Flask Lab 2.docx | Bin 0 -> 15352 bytes Labs/Lab9-FlaskSurvey/Flask Lab 2.txt | 49 ++++ Labs/Lab9-FlaskSurvey/flaskLab2/.DS_Store | Bin 0 -> 6148 bytes .../flaskLab2/.spyderworkspace | Bin 0 -> 50 bytes Labs/Lab9-FlaskSurvey/flaskLab2/app/.DS_Store | Bin 0 -> 6148 bytes .../flaskLab2/app/__init__.py | 4 + .../flaskLab2/app/__init__.pyc | Bin 0 -> 292 bytes .../flaskLab2/app/static/interactions.js | 42 ++++ .../flaskLab2/app/static/main.css | 225 ++++++++++++++++++ .../flaskLab2/app/templates/base.html | 36 +++ .../flaskLab2/app/templates/login.html | 19 ++ .../app/templates/not_authorized.html | 13 + .../app/templates/page_not_found.html | 12 + .../flaskLab2/app/templates/results.html | 33 +++ .../flaskLab2/app/templates/survey.html | 36 +++ Labs/Lab9-FlaskSurvey/flaskLab2/app/views.py | 59 +++++ Labs/Lab9-FlaskSurvey/flaskLab2/app/views.pyc | Bin 0 -> 2518 bytes Labs/Lab9-FlaskSurvey/flaskLab2/run.py | 3 + 21 files changed, 531 insertions(+) create mode 100644 Labs/Lab9-FlaskSurvey/.DS_Store create mode 100644 Labs/Lab9-FlaskSurvey/Flask Lab 2.docx create mode 100644 Labs/Lab9-FlaskSurvey/Flask Lab 2.txt create mode 100644 Labs/Lab9-FlaskSurvey/flaskLab2/.DS_Store create mode 100755 Labs/Lab9-FlaskSurvey/flaskLab2/.spyderworkspace create mode 100644 Labs/Lab9-FlaskSurvey/flaskLab2/app/.DS_Store create mode 100755 Labs/Lab9-FlaskSurvey/flaskLab2/app/__init__.py create mode 100644 Labs/Lab9-FlaskSurvey/flaskLab2/app/__init__.pyc create mode 100755 Labs/Lab9-FlaskSurvey/flaskLab2/app/static/interactions.js create mode 100755 Labs/Lab9-FlaskSurvey/flaskLab2/app/static/main.css create mode 100755 Labs/Lab9-FlaskSurvey/flaskLab2/app/templates/base.html create mode 100755 Labs/Lab9-FlaskSurvey/flaskLab2/app/templates/login.html create mode 100755 Labs/Lab9-FlaskSurvey/flaskLab2/app/templates/not_authorized.html create mode 100755 Labs/Lab9-FlaskSurvey/flaskLab2/app/templates/page_not_found.html create mode 100755 Labs/Lab9-FlaskSurvey/flaskLab2/app/templates/results.html create mode 100755 Labs/Lab9-FlaskSurvey/flaskLab2/app/templates/survey.html create mode 100755 Labs/Lab9-FlaskSurvey/flaskLab2/app/views.py create mode 100644 Labs/Lab9-FlaskSurvey/flaskLab2/app/views.pyc create mode 100755 Labs/Lab9-FlaskSurvey/flaskLab2/run.py diff --git a/.DS_Store b/.DS_Store index a44a65889fb8a98912823dc2abcae04f38660768..582da6d02135d02cfcc750fde6e93ba5036a3afa 100644 GIT binary patch delta 35 pcmZokXi3=FS$=H^7%#X=JsI03Zx3Df`p delta 31 ncmZokXi30D_6Ku5X37Swo;1xxn4^tw$Q@e(Z5jcZWmbD-Zr;) zSD;j@G5$B27)^Z92Q~hAz-UB$l^7-Zq@I5;@xkDqm>4x`kOv?9&F)?UcWuzbn8wUp zc7Ag+zu)Za=jJd+&hE2Ljn8l80WX$ z34|QWb54L0C?&x5?vMTqb0VUvS|Xl4 zXqPkbOx6m=({@W=JaY_N>~a)GfaMX_yI)r`$3~T!$;rmnfWN6ZI2G_uwzLET{^q95 zQ&XZSh|2v!^~&{IyQ1;Q(^Gfe#fFcofxBuD*?B*c-;JefKHWb;VOY672Sr&=0mYXE z6k??$$=AgW^w$gwjw(vl()MdcJfr8dj(A41MwKcH(d?0VATS+aY>Zzkc z_%Wt3`Vn1Ai;E#3MpN-IE$^*e=8@{;6>~+2%2{DV#b?@Msw`H`d+S$v3HZ8s_M>X01nBCkKk%L?tdnEqwC4cl`#Bv{7m*^{~X~ah!#D@2#6W@@8pEv4^0j zV$6sqG$Zfby3Hf+klIRJy2bvS11j%r@9@ag(ykIGaUf}qjUg5*@7;a7NA8jLmiQ>= zg+uJYdg4~5cU()cXY1R?5JXFSg+b=ormC9SP?)(5p|wu&ikhHPqp!1l*p&dG4 zC+veEI1G2daTtRXSa2Hdfk)s`cnltgC*c`*9?rn4@EW`hZ^JwAK70fpLmobbui!iQ z5iY?WaG3(FqzbL2%V-^4P8;bax|Md)U9^ktr^8gGV>IWCofd>TRCrLg{sh`<3Kg~I zE< z%qmh^?J{58a!HP%7PJ$^ldYgwWg%0ukoT@^Shae&B+cnZL^1EZX`S!pfGig~DHL^% zeFQi9ZfTNB`cTSHwHV#9+1I)S2UN7QC<{=K7`=UmFVt2#0;OEB*u8gl`gV2A5?!Hm zv*?~ZzP-J(3{5}Ma*HGFAsIxD~H{=J@+3(~}kYFj)!y0IW z7T5u8w!S){7h*69M?tq$mVr}nFWd(Yz=QA*JONL`bMOMZ2rt3Qw#LrEyYL?B>^v&% zbNCuA!ndfj@8K7?LG)%i`lpZWn+enex zj{F_9QtD|NPGYzW?X@f4={>wZ}6~fD_;ZH~~(86W|0m0ZxDu-~>1UPJk2O1ULas KfD`!t5%>$H(=;;x delta 109 zcmZpvXfcprU|?W$DortDU=RQ@Ie-{MGqg=C6q~50$jCS`z?zY9GLL}D#?o;1#q1m$ yg3KU!pfYYC;R?iU8wGKf&zof#P6NA_2S7 z-P~j6_HHcS1Ar`En`@u|Fk?~_EsU5pk9M78=P6Naj1>|d@QjN1J51+Z;0`Tky~h6h z=eR5E07P1+1YWo=nVxzfq$rg?hlDcvCP;z+Sb9$o&ZF>Mw_v$ zZwck3jAh2&kv%kVD$%KupBUnFwx{e@X6zlE4zb7_CrAExyog0-dop)O=@@w^5DE+x zn0U3&^Z%B=%;+P3NQqh~5DNS;1!TH>TrRk%e71gBo}RUd>4`~A{dz6XSRPygSkZmt e!aBV_X_!L>3DCfCBFq_dXQ> literal 0 HcmV?d00001 diff --git a/Labs/Lab9-FlaskSurvey/Flask Lab 2.docx b/Labs/Lab9-FlaskSurvey/Flask Lab 2.docx new file mode 100644 index 0000000000000000000000000000000000000000..61f5f2f0a7dcec64ea3cfcaa8ec25bf15e753801 GIT binary patch literal 15352 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 I{q63500R&5VE_OC literal 0 HcmV?d00001 diff --git a/Labs/Lab9-FlaskSurvey/Flask Lab 2.txt b/Labs/Lab9-FlaskSurvey/Flask Lab 2.txt new file mode 100644 index 0000000..b4c8d85 --- /dev/null +++ b/Labs/Lab9-FlaskSurvey/Flask Lab 2.txt @@ -0,0 +1,49 @@ +Flask Lab 2 +In this lab weÕll be implementing a simple survey web app using Flask. +The general concepts weÕll be covering are: +* Routing +* Templating +* Passing Parameters +* Sessions + +We will walk through this lab in class and for homework you should redesign the questions and the survey and get creative. Also, make the e-mail link work and send the survey results to us! + +Requirements + +1. Download the flaskLab2.zip file from bCourses>Files>Labs +Creating a login page +2. Open the Ôlogin.htmlÕ template in your text editor +a. Make this file an extension of the Ôbase.htmlÕ template +b. Use the existing form and create form inputs that capture the userÕs name and email +c. Make sure the HTML in this file is replacing the block called ÔcontentÕ in the Ôbase.htmlÕ template +d. Make the form submit to the Ô/loginÕ endpoint +Creating a session +3. Open the Ôviews.pyÕ file in your text editor +a. Find the route for Ô/loginÕ +b. Within the Ôlogin()Õ function, if the request method is POST +i. set the sessionÕs ÔusernameÕ key to whatever the user entered for their username +ii. Redirect the user to the ÔindexÕ route +Extending and reusing content from the Ôbase.htmlÕ template for the Ôsurvey.htmlÕ template +4. Open the Ôsurvey.htmlÕ template in your text editor +a. Make this file an extension of the Ôbase.htmlÕ template +b. The HTML in this file for the form with the id of ÔlogoutÕ is currently replacing the entire contents of the

tag in the Ôbase.htmlÕ template. Using the super() function, pull in the original contents of the
tag from the Ôbase.htmlÕ template +c. Make sure the HTML in this file from the

and down is replacing the block called ÔcontentÕ in the Ôbase.htmlÕ template +Creating an Ajax request with the userÕs form inputs from Ôsurvey.htmlÕ +5. Open the Ôinteraction.jsÕ script in your text editor +a. Notice that the button from the Ôsurvey.htmlÕ template with the id Ôsubmit-surveyÕ has a click event binding +b. Also notice that there are variable declarations for each of the form input fields +c. Create a $.post() Ajax request within this ÔclickÕ event handler +i. The url for this Ajax request should point to Ôsubmit-surveyÕ +ii. The data parameter of this Ajax request should be an object whose key-value pairs correspond to the variables for each form input field +iii. The success function for this Ajax request should set the innerHTML of document.body.parentNode to the response data object +Rendering the survey results via Flask +6. Go back to the Ôviews.pyÕ file in your text editor +a. Find the route for Ô/submit-surveyÕ +b. YouÕll notice that an empty object has been assigned to the variable name ÔsurveyResponseÕ +c. YouÕll also notice that Ôfe-beforeÕ and Ôfe-afterÕ keys in the ÔsurveyResponseÕ object have been assigned values that correspond to values in the data object we passed in from step 5 above. +i. Assign the keys ÔcolorÕ, ÔfoodÕ, and ÔvacationÕ for the ÔsurveyResponseÕ object to corresponding values from the passed-in data object in a similar fashion +7. You should now be able to do the following: +a. Log into this simple survey web app with a username and email +b. Take the survey +c. See the survey results displayed + diff --git a/Labs/Lab9-FlaskSurvey/flaskLab2/.DS_Store b/Labs/Lab9-FlaskSurvey/flaskLab2/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..fadd49af93a07740151b4698fdea46e28fdbf625 GIT binary patch literal 6148 zcmeH~I}XA?3`A{6fkcy%avKi74OR$FzyR_M(RA8jQJo4Vo|2_QM{6A`8N(HFEpDCc- z?y%e9rSfe3cs;8hvuf)G2mNw{x1Rtcb`-DRZrCrj0Bf=ZQGxMCz-3^d0zXyY1qdw> AZU6uP literal 0 HcmV?d00001 diff --git a/Labs/Lab9-FlaskSurvey/flaskLab2/.spyderworkspace b/Labs/Lab9-FlaskSurvey/flaskLab2/.spyderworkspace new file mode 100755 index 0000000000000000000000000000000000000000..be24de3f58bb019a1446608c26e01e2dc4121a3e GIT binary patch literal 50 zcmZo*sx4&H2<0s(%FjwoE{QKlEXgP?WQq-C$xF;lEo6@1WME+MNla2m%SkNGE@Uay F0|1r^4`~1Z literal 0 HcmV?d00001 diff --git a/Labs/Lab9-FlaskSurvey/flaskLab2/app/.DS_Store b/Labs/Lab9-FlaskSurvey/flaskLab2/app/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5b80eae8dab05ca466a0e3827216b6df84715ffd GIT binary patch literal 6148 zcmeHKyG{c!5S)bwC89}5>0jUvPEqm&`~Z-oKspqpBmGr;7oW!L1BvLMNI?_LO6#%L zJGMN=%F;1kV8yz@I|Px3MP_mEIGmF{9k{jACQbh zL%V2aH9Px|;-9C-Z2rAJ(62>^Z*ZFdN*qR-$S^7xF~vwlbODKj7Lgv2NvKGOl`-Y% z2u;-$mNML20{GC<9{=d6QfIqK$9MV5%UdvV4*(%*X_OG5)eN$2U5qs1)=x~~|G=(5 z`Od1&axME#nx=MDUGaBikFII?T7JIF!wY74-<{OJ!#<=J95cBPsCGg;w?kO}YMQdw NYUy`b|CwntVK + + + + + {% block title %}{% endblock %} - Ape Ask + + + + {% block styles %}{% endblock %} + + + + +
+ {% block header %} +
+
+ +
+

Ape Ask

+
+ {% endblock %} +
+
{% block content %}{% endblock %}
+ +
+

© Copyright 2016 Ape Ask, all rights reserved

+
+ + + + + + + diff --git a/Labs/Lab9-FlaskSurvey/flaskLab2/app/templates/login.html b/Labs/Lab9-FlaskSurvey/flaskLab2/app/templates/login.html new file mode 100755 index 0000000..6491452 --- /dev/null +++ b/Labs/Lab9-FlaskSurvey/flaskLab2/app/templates/login.html @@ -0,0 +1,19 @@ +{% extends "base.html" %} + +{% block title %} + Login +{% endblock %} + + + +{% block content %} +

Hi There! Welcome to Ape Ask, the leading online survey site.

+
+

Let's get you logged in

+
+ + + +
+
+{% endblock %} \ No newline at end of file diff --git a/Labs/Lab9-FlaskSurvey/flaskLab2/app/templates/not_authorized.html b/Labs/Lab9-FlaskSurvey/flaskLab2/app/templates/not_authorized.html new file mode 100755 index 0000000..99a0c25 --- /dev/null +++ b/Labs/Lab9-FlaskSurvey/flaskLab2/app/templates/not_authorized.html @@ -0,0 +1,13 @@ + + + + + Oops! + + +

Uh Oh! You're not authorized

+ +
+ Take me back home, already! + + \ No newline at end of file diff --git a/Labs/Lab9-FlaskSurvey/flaskLab2/app/templates/page_not_found.html b/Labs/Lab9-FlaskSurvey/flaskLab2/app/templates/page_not_found.html new file mode 100755 index 0000000..dadcc99 --- /dev/null +++ b/Labs/Lab9-FlaskSurvey/flaskLab2/app/templates/page_not_found.html @@ -0,0 +1,12 @@ +{% extends "base.html" %} + +{% block title %} + Oops! +{% endblock %} + +{% block content %} +

Oh, Pooh Bear! You're stuck because we don't have that page for you.

+ +
+ Go back! +{% endblock %} \ No newline at end of file diff --git a/Labs/Lab9-FlaskSurvey/flaskLab2/app/templates/results.html b/Labs/Lab9-FlaskSurvey/flaskLab2/app/templates/results.html new file mode 100755 index 0000000..e88f5a1 --- /dev/null +++ b/Labs/Lab9-FlaskSurvey/flaskLab2/app/templates/results.html @@ -0,0 +1,33 @@ +{% extends "base.html" %} + +{% block title %} + Survey +{% endblock %} + +{% block header %} + {{ super() }} +
+ Logged in as {{ name }} + +
+{% endblock %} + +{% block content %} +

Great news - your results are in! Check it out...

+
+

Here are some of your favorite things

+ Your number of broken bones is {{ surveyResponse['bones']}} + Your favorite time to walk is {{ surveyResponse['walk']}} + You stopped liking Kanye West in {{ surveyResponse['kanye']}} + Your favorite vacation spot is {{ surveyResponse['vacation']}} + +

Wow! Look at your skillz

+ Now your cooking skillz are at {{ surveyResponse['cook-before']}} + But in just a few short years, your cooking skillz will be at {{ surveyResponse['cook-after']}} + +
+ Want your survey results emailed to you? + Yes! +
+
+{% endblock %} \ No newline at end of file diff --git a/Labs/Lab9-FlaskSurvey/flaskLab2/app/templates/survey.html b/Labs/Lab9-FlaskSurvey/flaskLab2/app/templates/survey.html new file mode 100755 index 0000000..0d6a9cf --- /dev/null +++ b/Labs/Lab9-FlaskSurvey/flaskLab2/app/templates/survey.html @@ -0,0 +1,36 @@ +{% extends "base.html" %} + + +{% block title %} + Survey +{% endblock %} + + +{% block header %} + + {{super()}} +
+ Logged in as {{ name }} + +
+{% endblock %} + +{% block content %} +

A Little Survey About You

+
+

About You

+ + + + + +

Let's look at your desired skillz progression

+ + + + +
+{% endblock %} \ No newline at end of file diff --git a/Labs/Lab9-FlaskSurvey/flaskLab2/app/views.py b/Labs/Lab9-FlaskSurvey/flaskLab2/app/views.py new file mode 100755 index 0000000..8aec57a --- /dev/null +++ b/Labs/Lab9-FlaskSurvey/flaskLab2/app/views.py @@ -0,0 +1,59 @@ +from app import myapp +# below are the libraries needed for this +from flask import request, render_template, session, redirect, url_for, escape +import os + +myapp.secret_key = os.urandom(24) + +@myapp.route('/') +@myapp.route('/index') +# index associated with the below logic +def index(): + username = '' + # if there is a user in session, exexcute the logic + if 'username' in session: + username = escape(session['username']) + return render_template('survey.html', name=username) + else: + # you see the else if you go to the index html right now + return render_template('login.html') + +@myapp.route('/login', methods=['GET', 'POST']) +def login(): + if request.method=='POST': + #grab data from the form + #created a session object (step 3) + session['username'] = request.form.get("username") + session['email'] = request.form.get("email") + # from here, goes through the index logic one more time + return redirect(url_for('index')) + + +@myapp.route('/logout') +def logout(): + session.pop('username', None) + session.pop('email', None) + return redirect(url_for('index')) + +@myapp.route('/submit-survey', methods=['GET', 'POST']) +def submitSurvey(): + username = '' + email = '' + if 'username' in session: + username = escape(session['username']) + email = escape(session['email']) + surveyResponse = {} + + surveyResponse['bones'] = request.form.get('bones') + surveyResponse['walk'] = request.form.get('walk') + surveyResponse['kanye'] = request.form.get('kanye') + surveyResponse['vacation'] = request.form.get('vacation') + surveyResponse['cook-before'] = request.form.get('cookBefore') + surveyResponse['cook-after'] = request.form.get('cookAfter') + return render_template('results.html', name=username, email=email, surveyResponse=surveyResponse) + else: + return render_template('login.html') + +@myapp.errorhandler(404) +def page_not_found(error): + return render_template('page_not_found.html'), 404 \ No newline at end of file diff --git a/Labs/Lab9-FlaskSurvey/flaskLab2/app/views.pyc b/Labs/Lab9-FlaskSurvey/flaskLab2/app/views.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2197fa3cdd7b8d17b8fb56c670bdedb0b5d98281 GIT binary patch literal 2518 zcmcgtO>ZMb5UrlE$9C+*PF6&VSkN9;$d_bRdqFF$(89tZ1ae@!2+0>~;^`z~&ll6} zERnLO@Duob`~q%BT$fkXo+OZSn0PAH)gM#!>Q%M>*Y?(D^S^&y(B^65|4Y2)Jw$?^ zqKqh4G*hH_>`~@X?$gYtyhXDX{ozu9)PtV>Cc5}eSdQx8)r8Elr#cA7QYvVEtq4;%aN z&fZb8W+ZENDcP01dyRdM5}&5y2f!eGk7ul)S;i*6h^uNG@UR0>>tEK|SUVKGNOV27 zIpGjCl(prPv{}TJo}>?n= zZTc9Pb$zZc4$o|!S^la_Y(dG&)3gx#*vBvu!LCLggn$(FSi|dt`4L+96HYf_7O(3# z2N-FQhF@v3vSk&1d-Q#L4EZ|EvO-LsYcjR?AGiN5z4x}I>p6fhLvxt!%GlwD}7sKdW z6%WCUTwFfY*5S;Vi1@f0bVa*Ihy}zC@JYislQ;DD)xKxg=@4_}+TI26DJHK$1l6uQ zQkyXtxEcF`q<{yorelt6A^=5PNe&y1RYDgWsa= z*wCzx^VA-=vJpg>QVf~U>Q5+}dPQY|Tpk0&Rr|-?s&!TDyDC*mAGra$c0>>Pw9xa2<(< z2gfqD++cY8#fe2%X%-*EG8|wMd)ApX(x)Pxx11%Hok*LiEYOwNF7$ToOqv*HEfS3@ zGTLRa$3nWB%<{(_ML&in^(W$~j6^QyxEpATLmXl7^=O4^?^n_sC0shx-c- zfnWArXvkRs@4!SP3LHG~P;5iD({)|e_Z~cF z?cZKKhsCff