From 6011dd62596eba802f4bd5899a11f9d9bca8f23e Mon Sep 17 00:00:00 2001 From: Rohit Raghavan Date: Fri, 7 Oct 2016 18:57:47 -0700 Subject: [PATCH] Lab 9 --- .../lab-flask1-instructions.docx | Bin 0 -> 28674 bytes Labs/Lab8-Flask_Simple_Form/lab-flask1.zip | Bin 0 -> 1009 bytes .../lab-flask1/app/__init__.py | 4 ++ .../app/__pycache__/__init__.cpython-35.pyc | Bin 0 -> 287 bytes .../app/__pycache__/views.cpython-35.pyc | Bin 0 -> 529 bytes .../lab-flask1/app/views.py | 9 ++++ .../lab-flask1/runserver.py | 2 + Labs/Lab9-Flask_Survey/Flask Lab 2.docx | Bin 0 -> 15352 bytes Labs/Lab9-Flask_Survey/Flask Lab 2.txt | 46 ++++++++++++++++++ Labs/Lab9-Flask_Survey/flaskLab2.zip | Bin 0 -> 8072 bytes .../__pycache__/config.cpython-35.pyc | Bin 0 -> 319 bytes Labs/lab-SQL/Lab-SQLite/app.db | Bin 3072 -> 3072 bytes .../app/__pycache__/__init__.cpython-35.pyc | Bin 0 -> 403 bytes .../app/__pycache__/forms.cpython-35.pyc | Bin 0 -> 661 bytes .../app/__pycache__/models.cpython-35.pyc | Bin 0 -> 781 bytes .../app/__pycache__/views.cpython-35.pyc | Bin 0 -> 1124 bytes Labs/lab-SQL/Lab-SQLite/app/models.py | 14 +++++- .../Lab-SQLite/app/templates/customer.html | 6 +++ .../Lab-SQLite/app/templates/home.html | 8 +++ Labs/lab-SQL/Lab-SQLite/app/views.py | 10 +++- Labs/lab-SQL/Lab-SQLite/schema.sql | 6 +++ Labs/lab-SQL/Pokemon.db | Bin 9216 -> 9216 bytes 22 files changed, 102 insertions(+), 3 deletions(-) create mode 100644 Labs/Lab8-Flask_Simple_Form/lab-flask1-instructions.docx create mode 100644 Labs/Lab8-Flask_Simple_Form/lab-flask1.zip create mode 100755 Labs/Lab8-Flask_Simple_Form/lab-flask1/app/__init__.py create mode 100644 Labs/Lab8-Flask_Simple_Form/lab-flask1/app/__pycache__/__init__.cpython-35.pyc create mode 100644 Labs/Lab8-Flask_Simple_Form/lab-flask1/app/__pycache__/views.cpython-35.pyc create mode 100755 Labs/Lab8-Flask_Simple_Form/lab-flask1/app/views.py create mode 100755 Labs/Lab8-Flask_Simple_Form/lab-flask1/runserver.py create mode 100644 Labs/Lab9-Flask_Survey/Flask Lab 2.docx create mode 100644 Labs/Lab9-Flask_Survey/Flask Lab 2.txt create mode 100644 Labs/Lab9-Flask_Survey/flaskLab2.zip create mode 100644 Labs/lab-SQL/Lab-SQLite/__pycache__/config.cpython-35.pyc create mode 100644 Labs/lab-SQL/Lab-SQLite/app/__pycache__/__init__.cpython-35.pyc create mode 100644 Labs/lab-SQL/Lab-SQLite/app/__pycache__/forms.cpython-35.pyc create mode 100644 Labs/lab-SQL/Lab-SQLite/app/__pycache__/models.cpython-35.pyc create mode 100644 Labs/lab-SQL/Lab-SQLite/app/__pycache__/views.cpython-35.pyc diff --git a/Labs/Lab8-Flask_Simple_Form/lab-flask1-instructions.docx b/Labs/Lab8-Flask_Simple_Form/lab-flask1-instructions.docx new file mode 100644 index 0000000000000000000000000000000000000000..0d2c42a80c3bd3a495b737a3825b347bd10f0864 GIT binary patch literal 28674 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 literal 0 HcmV?d00001 diff --git a/Labs/Lab8-Flask_Simple_Form/lab-flask1/app/__pycache__/views.cpython-35.pyc b/Labs/Lab8-Flask_Simple_Form/lab-flask1/app/__pycache__/views.cpython-35.pyc new file mode 100644 index 0000000000000000000000000000000000000000..422e4f1acaaa97968318e7b6147b21f2d61f6945 GIT binary patch literal 529 zcmYLGJx{|h5IrYNTPnULW_Lg+Lu;`yAcTa3KteFI2&n_eZLV#=iG%F|?FxT}zZAs8 z1V4d^bNI6Eo}VwzerIQ6Wu^7<`f>3N0B@9kqeg6>()I}w3I+-wV=!RA{5k*?Ko-Iv zgscXG8ZcyV9YGSpBZD7a^E{zq9iG5*ia{Nc2K3^l_k@_0Q8t%F5eH?%;Oz{pE7uI> z37RX1S)ruEPbL<1ky7npGTv_cRtuBn?ioyj3@iA&6z3L= z6-G}}XXIom?_@3x$iSi%$7d&U_=Ci(AlMX Q;U1%vtrM)XjbNF50rMGvR{#J2 literal 0 HcmV?d00001 diff --git a/Labs/Lab8-Flask_Simple_Form/lab-flask1/app/views.py b/Labs/Lab8-Flask_Simple_Form/lab-flask1/app/views.py new file mode 100755 index 0000000..e674a1a --- /dev/null +++ b/Labs/Lab8-Flask_Simple_Form/lab-flask1/app/views.py @@ -0,0 +1,9 @@ +from app import myapp +from flask import request,render_template + +@myapp.route('/') +@myapp.route('/index') +def index(): + print("This is a log ..comes on your console") + return "Hello - this the page for your form !!" + diff --git a/Labs/Lab8-Flask_Simple_Form/lab-flask1/runserver.py b/Labs/Lab8-Flask_Simple_Form/lab-flask1/runserver.py new file mode 100755 index 0000000..20545ec --- /dev/null +++ b/Labs/Lab8-Flask_Simple_Form/lab-flask1/runserver.py @@ -0,0 +1,2 @@ +from app import myapp +myapp.run(debug=True) diff --git a/Labs/Lab9-Flask_Survey/Flask Lab 2.docx b/Labs/Lab9-Flask_Survey/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-Flask_Survey/Flask Lab 2.txt b/Labs/Lab9-Flask_Survey/Flask Lab 2.txt new file mode 100644 index 0000000..661dc9b --- /dev/null +++ b/Labs/Lab9-Flask_Survey/Flask Lab 2.txt @@ -0,0 +1,46 @@ +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-Flask_Survey/flaskLab2.zip b/Labs/Lab9-Flask_Survey/flaskLab2.zip new file mode 100644 index 0000000000000000000000000000000000000000..29f66dc0b914de346401c9622cffa65a43211f16 GIT binary patch literal 8072 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 literal 0 HcmV?d00001 diff --git a/Labs/lab-SQL/Lab-SQLite/__pycache__/config.cpython-35.pyc b/Labs/lab-SQL/Lab-SQLite/__pycache__/config.cpython-35.pyc new file mode 100644 index 0000000000000000000000000000000000000000..56890245789be9ad08666b803a1bec888344d0a8 GIT binary patch literal 319 zcmYk2&q~8U5XNVdn1o`%gLw2P^bq$hB5F)Q4HcV6aWBipY?G8UDLYA}UVWOrQm&qS z0S}(s_y-(jzWL3-$G{v6hXZT-F*_mvZ}2Zn&F8xCL`$lZKncJAB*22e!uSIdqy?{} zPqqW80nCQf1m^UXXk@)>KTP76{Y~9^&qY~!m0U~ZWvxUUxt&pCXRSn&caBK#2hu`S zVktY9^LbH9&Y6=4lzPqfX7QN&(R9p%$;D+DTy=ve@TWn{Z-d7zC|6(mmd_jdfKnk< zbzU?|WVu+2iu!e{P$Ip)3q|s)nvj+v@uK^X>Y?vNBk5CJ&5P`Kwdvf`Wu3OAJkxIi Lw6*M#L)#`_U=dVl literal 0 HcmV?d00001 diff --git a/Labs/lab-SQL/Lab-SQLite/app.db b/Labs/lab-SQL/Lab-SQLite/app.db index a61b799d7873a03304be0292aedb9853420f73b2..2a28894081bf0557a6de5e7c0f409f2dd5926cef 100644 GIT binary patch delta 206 zcmZpWXpop7Ehx;uz`zW}j6j-wqK+|8Q1@pCFObK`T*|;)%6xLOBFjmp$(GDET#X!z z?BeqBjE(V=eV83tQqxn5CigPi@PJe^F|TA`zQnw8vm(a~<_sMs76x&3AR+CV8JwJv zpP!Ri45l2Qv|dtbQFdxhYNcLkN~sPbP<3!nenw_V5s1($N=(m4EKAJ8sv2k+3@~lx I;rPM~0IJ6{IsgCw delta 355 zcmZpWXpop7Ey&Hlz`zW|Fu*)f#~3K6`;3K``40mVvl9ce6Z6TnqG2#t{6KDgSdJ| zYEDi*h;T>;5+HGDHWmhXO}L)Kav*R3kswJCRu%?P)r|at)XWlx^8BLgVvwj13k!p= zGDM3*abgNsjG2YOOISHCwH$~XfEXkw%EZDTsa%o@R8tI8?f}GKVMd^->OkQV5Ox3& VAYm@B-)=H6|6%^VnTO*GGXTL&Wbgn0 diff --git a/Labs/lab-SQL/Lab-SQLite/app/__pycache__/__init__.cpython-35.pyc b/Labs/lab-SQL/Lab-SQLite/app/__pycache__/__init__.cpython-35.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e373d4298684e128856371ff4b6490da4bd28658 GIT binary patch literal 403 zcmX|5OHRWu5FICRXwz2e0&#~ds4svJ2nh+P;-d;7d1E<^+osq_vC~4=Jxy=GS-fS% z1z50RTo9J$`OS>y%{v(kvSk1D^bPzHj8RcqyZAvdySSIycw z<=D;LSQdYX%rPyCQ}oU-32)UZh8vj>Rb910j8rDqbN6k`p(CDiumAl_FRnBwvhMdv_!3WNSO6J(rj1EBVTa z7vR8&@usB}R`TVWKhHO#?9FCna{K$s5druKk4}PoA7A?wLEu9`0cZl0010*kDgqq? zjX@_slgS%{Nr z)4K2lV?EcBF<&yK2QjL^E5Ze`PFcZtozGN#EwzlUii Zwu?SryqdQ18h<^oVF7cpN9JT6{RKU0nQQ<6 literal 0 HcmV?d00001 diff --git a/Labs/lab-SQL/Lab-SQLite/app/__pycache__/models.cpython-35.pyc b/Labs/lab-SQL/Lab-SQLite/app/__pycache__/models.cpython-35.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9145f4e89108aa01181111fcbcdd5a376ec98c16 GIT binary patch literal 781 zcmY+B!EVz)5Qb;HiPJWTsCs}42One9)`#|pT2RzOP)OCJr6`xku{YF_oei_=mQ=~9 z+<6XO$yZK10TL%>oC4{}^LuwZJD&OGd9%4wKlpY1-U0Xl8;j2HhRn1`VtNFm07C(> z1F?j!w5Lr4;%d2<95C?RpA-$fh;Q?%kk!fBWTr!60j88gz=MEqN3e2W>A=*12Y{7? zrGzPEA}7F7z=Zq`2#%<5gt(?cF8Uuy2fpmxyWxC(7?1CdJH5eK|I+L9F3-IvH&$l~ zjn|5FHV5a!Qi4B(1G8HRROgUWI9%xG|x)Ka}T4m@olBrux!huK9g#HQX7e=MT%6sKaP-p*H z`!(c|BbPCheSJ5qqrMwW!pLe|AeWC-l45J3Y;+T*sV|Z1MQ*BaQJFloCCjxm*u96! zVxn%Rr=$D-V}`^m+yHLS;>6vDALL~ONyp~dO&?ZVW^seIOs2%NyUy@wkvgStYu+>GvYgrFd_tLZ;=%_w``Wv zQ#BvToN6~J!KBbd~@JH6g4%;?s`gUkT^sQJU1~m~t{qC(f@cYYXOx?B0 zIjSg7gwtixL!mJji+^pTR(UYorr3|scX_U;$1m2IKPM+;BLP8=7(OGdAGb|-R%Ggn z3$-H0LPq=2-MwggC=G21l&gRVv7Bq+`pM<)B0ad?(dZa#yrM@mFT`uhgnJk}Y=?D& I7vanHUn4d6X8-^I literal 0 HcmV?d00001 diff --git a/Labs/lab-SQL/Lab-SQLite/app/models.py b/Labs/lab-SQL/Lab-SQLite/app/models.py index 9be98c2..2d28700 100755 --- a/Labs/lab-SQL/Lab-SQLite/app/models.py +++ b/Labs/lab-SQL/Lab-SQLite/app/models.py @@ -1,7 +1,19 @@ import sqlite3 as sql -def insert_customer(): + +def insert_customer(company, email): # SQL statement to insert into database goes here + with sql.connect("app.db") as con: + cur = con.cursor() + cur.execute( + "INSERT INTO customers (company, email) VALUES (?, ?)", (company, email)) + con.commit() + def retrieve_customers(): # SQL statement to query database goes here + with sql.connect("app.db") as con: + con.row_factory = sql.Row + cur = con.cursor() + result = cur.execute("select * from customers").fetchall() + return result diff --git a/Labs/lab-SQL/Lab-SQLite/app/templates/customer.html b/Labs/lab-SQL/Lab-SQLite/app/templates/customer.html index 6e74a14..36c49b4 100755 --- a/Labs/lab-SQL/Lab-SQLite/app/templates/customer.html +++ b/Labs/lab-SQL/Lab-SQLite/app/templates/customer.html @@ -11,6 +11,12 @@

Add Customer to Our Database

+

Company name:
+ {{ form.company(size=120) }}
+

+

Customer email:
+ {{ form.email(size=120) }}
+

diff --git a/Labs/lab-SQL/Lab-SQLite/app/templates/home.html b/Labs/lab-SQL/Lab-SQLite/app/templates/home.html index e2216db..8f06a97 100755 --- a/Labs/lab-SQL/Lab-SQLite/app/templates/home.html +++ b/Labs/lab-SQL/Lab-SQLite/app/templates/home.html @@ -17,6 +17,14 @@

These are all of our awesome customers:

+ + {% for customer in customers %} + + {{ customer['company']}} + {{ customer['email']}} + + {% endfor %} +
diff --git a/Labs/lab-SQL/Lab-SQLite/app/views.py b/Labs/lab-SQL/Lab-SQLite/app/views.py index 4fc2de6..da7cde1 100755 --- a/Labs/lab-SQL/Lab-SQLite/app/views.py +++ b/Labs/lab-SQL/Lab-SQLite/app/views.py @@ -8,17 +8,23 @@ def index(): return redirect('/create_customer') + @app.route('/create_customer', methods=['GET', 'POST']) def create_customer(): form = CustomerForm() if form.validate_on_submit(): # Get data from the form # Send data from form to Database + company = form.company.data + email = form.email.data + models.insert_customer(company, email) return redirect('/customers') return render_template('customer.html', form=form) + @app.route('/customers') def display_customer(): - #Retreive data from database to display + # Retreive data from database to display + customers = models.retrieve_customers() return render_template('home.html', - customers=customers) + customers=customers) diff --git a/Labs/lab-SQL/Lab-SQLite/schema.sql b/Labs/lab-SQL/Lab-SQLite/schema.sql index f06fbdb..aa10b84 100644 --- a/Labs/lab-SQL/Lab-SQLite/schema.sql +++ b/Labs/lab-SQL/Lab-SQLite/schema.sql @@ -1,2 +1,8 @@ -- Insert code to create Database Schema -- This will create your .db database file for use +drop table if exists customers; +create table customers ( + customer_id integer primary key, + company text not null, + email text not null +); diff --git a/Labs/lab-SQL/Pokemon.db b/Labs/lab-SQL/Pokemon.db index 7fbc93f8b758953747c84f7262cab5cb34af8b5b..0dd44fa9f56a01bc03c74ed614c8d9714627a3fd 100644 GIT binary patch delta 197 zcmZqhXz-XIEhx;uz`zN_Oi(O4QO8(Zm_hgB4pyKD0}F^?U}wC?=*#FjvFtnt8xI>; zXtOWlE+$q+Ae(bD56g6ZCWfn%mkP(TF*1K-VE(vSP~;->WCIp4MP5c023ba@)S~Rv zoYYEYUZ4h6hC&ABbxdbLhB6dREQ{xAjO1Y#*VkukN}Sjc$E2e$@uSRSK1SKeI*f`E csl{9c`Pr$t`FX_}P)2-ail*jfU&+l}0KmX4-2eap delta 152 zcmZqhXz-XIEhxmmz`zN_OhC*6#4;0gjKzf*bf0nYf zGRJ0L#$8OT%s^@O%{(mA`I#8|CNC9^=K$$v{>c1jv!KW|W<6de76y4v=hA}IqLR$K hd|pNt23f}7#5@JB{Nhw5bi+3*ve+_i_Lbbs1pr!DA>#l5