From d79e4df638dfe644354f37afb6d014ef69dc83d3 Mon Sep 17 00:00:00 2001 From: Malavika Srinivasan Date: Wed, 5 Oct 2016 21:06:18 -0700 Subject: [PATCH] Flask Lab + Added a random gif generator to thank you page --- Labs/.DS_Store | Bin 0 -> 6148 bytes Labs/Lab_Flask/app/.DS_Store | Bin 0 -> 6148 bytes Labs/Lab_Flask/app/__init__.py | 4 + Labs/Lab_Flask/app/__init__.pyc | Bin 0 -> 278 bytes .../app/__pycache__/__init__.cpython-35.pyc | Bin 0 -> 285 bytes .../app/__pycache__/views.cpython-35.pyc | Bin 0 -> 2252 bytes Labs/Lab_Flask/app/static/interactions.js | 38 +++ Labs/Lab_Flask/app/static/main.css | 231 ++++++++++++++++++ Labs/Lab_Flask/app/templates/.DS_Store | Bin 0 -> 6148 bytes Labs/Lab_Flask/app/templates/base.html | 33 +++ Labs/Lab_Flask/app/templates/login.html | 16 ++ .../app/templates/not_authorized.html | 13 + .../app/templates/page_not_found.html | 12 + Labs/Lab_Flask/app/templates/results.html | 40 +++ Labs/Lab_Flask/app/templates/survey.html | 31 +++ Labs/Lab_Flask/app/views.py | 60 +++++ Labs/Lab_Flask/app/views.pyc | Bin 0 -> 2299 bytes Labs/Lab_Flask/run.py | 3 + 18 files changed, 481 insertions(+) create mode 100644 Labs/.DS_Store create mode 100644 Labs/Lab_Flask/app/.DS_Store create mode 100755 Labs/Lab_Flask/app/__init__.py create mode 100755 Labs/Lab_Flask/app/__init__.pyc create mode 100644 Labs/Lab_Flask/app/__pycache__/__init__.cpython-35.pyc create mode 100644 Labs/Lab_Flask/app/__pycache__/views.cpython-35.pyc create mode 100755 Labs/Lab_Flask/app/static/interactions.js create mode 100755 Labs/Lab_Flask/app/static/main.css create mode 100644 Labs/Lab_Flask/app/templates/.DS_Store create mode 100755 Labs/Lab_Flask/app/templates/base.html create mode 100755 Labs/Lab_Flask/app/templates/login.html create mode 100755 Labs/Lab_Flask/app/templates/not_authorized.html create mode 100755 Labs/Lab_Flask/app/templates/page_not_found.html create mode 100755 Labs/Lab_Flask/app/templates/results.html create mode 100755 Labs/Lab_Flask/app/templates/survey.html create mode 100755 Labs/Lab_Flask/app/views.py create mode 100755 Labs/Lab_Flask/app/views.pyc create mode 100755 Labs/Lab_Flask/run.py diff --git a/Labs/.DS_Store b/Labs/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..fafaf419f1f7b6f9ad073a5ff493f258b9985556 GIT binary patch literal 6148 zcmeHKJx?1!5PeHr0BPtzNs+BknnZF!`jc}Ifl}q@N&FFma=x={V^O5IpOHGhCnZAs z1Aaz$vpZPl4Z1gC-Z7$es2vj3KCi4HCn*#9iB?tGYE0K^7|gRw7v2PDTUCW=)=zM;98N{p#auNW?-bKGlOqF62P}aa9Y{v z4aJ4(L@k#H literal 0 HcmV?d00001 diff --git a/Labs/Lab_Flask/app/.DS_Store b/Labs/Lab_Flask/app/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..9ff47901e7fe3deb5e81829c40497b411b58dc8e GIT binary patch literal 6148 zcmeHK%T59@6g_t!27(KgE@$b=#6Or2G;u3?6>x%>ks+cOcJqOLfFIz0jOVrufiiB1 zG53<&)5ksS%xP(-0A%p~cnS0Ybm)pnmq~+ZyZV78p++0U^)bgA?)kgG@*vtO{-Odp zcRe>}b1bksf18`4oKA{z!U$a+*Yxw+8FRpCGYiv*_Zjj0XiID`#hCttTzlGQwVor^ z307QNWBNQEL2jeiE~9e1a19oYkz=*ryL>5w-l}V+Km%hvdR-LdV#ZdkZTx7q)u|j80|6H_87&-Pn~=#V@FRG%}fDPz!W%=0=lo!Iz5k;ngXVPDX>*Q_lK0O zm<6mnx~+qWy8;l~taiq{ek>{{4VVS2JhFu*o=Wso30Dm9bk?UKE(=(B^mItLd`K8s z^h1^=ZggVG0!=apmY4#jK%_v+m-~ADU;Tdnk62bT1x$heq=2-Cqv3#W6wcOzchj>r sr9aTsG_LZvr7+`;V#exGd`5T1`cyN-EMVo4H8lGWa57k83LI5|A9omR1ONa4 literal 0 HcmV?d00001 diff --git a/Labs/Lab_Flask/app/__init__.py b/Labs/Lab_Flask/app/__init__.py new file mode 100755 index 0000000..9a4e940 --- /dev/null +++ b/Labs/Lab_Flask/app/__init__.py @@ -0,0 +1,4 @@ +from flask import Flask + +myapp = Flask(__name__) +from app import views diff --git a/Labs/Lab_Flask/app/__init__.pyc b/Labs/Lab_Flask/app/__init__.pyc new file mode 100755 index 0000000000000000000000000000000000000000..4d4e5adeb859807192e959f25c2546b087e0a2ed GIT binary patch literal 278 zcmYjLOA5j;5S_GEL=-%N%dR9_Kd7L%5*LatBrv2lLNTeOiNCe?^D-Vlr$x~r^JZQi z^Je^Kvp(uSHaqx)M|DhTIYCU1fd()PwhWkJpggz}@k`AET>%roHUJj;unH?Ql)NZH zMx6@?W?I_AkDe2Cv5TlUe3``lh-p97D=Kuw9~)o>*Iz zTM^}H&XIF2rpg}NF%wd&tC-8EU2YNNA`p`_afqGlRxTWvV|>zTSh(Bb{Fc{XZ~f0Y AU;qFB literal 0 HcmV?d00001 diff --git a/Labs/Lab_Flask/app/__pycache__/__init__.cpython-35.pyc b/Labs/Lab_Flask/app/__pycache__/__init__.cpython-35.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8fdf5b8f4db37426f48eaa74f9114ed182b4835c GIT binary patch literal 285 zcmX|)u};G<5Qfi53{^!XCf*@Kximwk3Ne)hu^e3^?1;}(^gM-Bx~zxvqf{Vbil-YWW&Qc5o=71cQrBvmEup{ Yl)4?JxY)T<`)>7}U}h*-uCpug2P1<>k^lez literal 0 HcmV?d00001 diff --git a/Labs/Lab_Flask/app/__pycache__/views.cpython-35.pyc b/Labs/Lab_Flask/app/__pycache__/views.cpython-35.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f624f53dbc7e33252b86efbb4f56685d9d4d695d GIT binary patch literal 2252 zcmaJ?&2HO95S}GPQj%r)FLC0gO;DgnAQUzeA94tiHf_+fXbUH(QxqTy2(-A8X_KP5 zyK-#7KBbS)d(VA=K0}{juRY}fddaEZEG@@Pi;CiMc6N6-Ki_;@UtDbe`o~{C{2meg zNtb>BPB?k%uLbEmGD!-One@JFl<9+#3frGksV*LGevH3|Asv@#ksjrTsaE+oKT35vj`yTGl!ZKrhiOr4-@SJ~ z&Z{Ebi=P&$KKvE}CYwW^Y{%{a-FA#*#z(n)skbI4HgLIU<3*YW@NPXj`9vvWG3?woQ79R4Z zTIkvSI^Srg`DK>qW|k-iEbvwt;e&)*nezXEfwPXvI2_ zE}QkR#HRum*%gSIQ%~NKSjVLpCbNj+uBPU{gS?9^7eS)puRIdxa{%Fd?vX*rE;x>) z*Vu6ZD1Kw@e#5zG{Yf=Z|L<#9dvgOvHSZ)3B@*gANV9INr+Z~?Hfxk!c+7!wV6H5; zn0IPeV?=R0I)j6*P^YdeXFj7ERXX+Qz%j=e;Eh`Ov;m-RoS`xSojQ~YfE{Jx-dGVP zawQ8cdZV6)^;}R+bQY3n(g9e>F%HskiXulS_l35}AYg6tvbHtXwk~VibM3-qZD+1s zq=#^mZFR8@7F(ihnL8DfcM1nqcpVEJir$8hv|PIS$PF8=UzjY;r9K-^BKYYd z|A0*}!(HmhP7UQ<$Cn>sP2a{qUMTol604#s+P)(w%(-3bt1aI5)JNEv{{o;7n9=#i zPY<_i0p>FR9$kQn1OG!0P3iB<)+Xsl_Q#dM*J3)(T zM<0%;90j<@ZO1vek23`%_TZAkF3*nknh(n=n-=mDPLAd}E{iR2J}!UN>xi4JJJF5s G&c@&Onct}Z literal 0 HcmV?d00001 diff --git a/Labs/Lab_Flask/app/static/interactions.js b/Labs/Lab_Flask/app/static/interactions.js new file mode 100755 index 0000000..bc8386b --- /dev/null +++ b/Labs/Lab_Flask/app/static/interactions.js @@ -0,0 +1,38 @@ +$('#submit-survey').on('click', function submitSurvey() { + var color = $("input[name=color]").val(); + var food = $("input[name=food]").val(); + var vacation = $("input[name=vacation]").val(); + var feBefore = $("input[name=front-end-before]").val(); + var feAfter = $("input[name=front-end-after]").val(); + $.post("submit-survey", + {color: color, + food: food, + vacation: vacation, + feBefore: feBefore, + feAfter: feAfter}, + function(data) { + $("html").html(data); + }) +}); + +$("#results-email-container").on('click', '#email-results-button', function emailResults() { + console.log($(this)); +}); + +$("#site-title-wrapper").on('click', function goHome() { + window.location.href = '/'; +}); + +$(document).ready(function applySliderLabels() { + var currentValue = $("#fe-before").val(); + $("#fe-before").next().html(currentValue); + + currentValue = $("#fe-after").val(); + $("#fe-after").next().html(currentValue); +}); + + +$("input[type='range']").on('change', function updateLabel() { + var currentValue = $(this).val(); + $(this).next().html(currentValue); +}); \ No newline at end of file diff --git a/Labs/Lab_Flask/app/static/main.css b/Labs/Lab_Flask/app/static/main.css new file mode 100755 index 0000000..d5f7b1b --- /dev/null +++ b/Labs/Lab_Flask/app/static/main.css @@ -0,0 +1,231 @@ +/*----------------- CSS RESET ------------------*/ + +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td, +article, aside, canvas, details, embed, +figure, figcaption, footer, header, hgroup, +menu, nav, output, ruby, section, summary, +time, mark, audio, video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; +} +/* HTML5 display-role reset for older browsers */ +article, aside, details, figcaption, figure, +footer, header, hgroup, menu, nav, section { + display: block; +} +body { + line-height: 1; +} +ol, ul { + list-style: none; +} +blockquote, q { + quotes: none; +} +blockquote:before, blockquote:after, +q:before, q:after { + content: ''; + content: none; +} +table { + border-collapse: collapse; + border-spacing: 0; +} + +/*----------------- CSS RESET ------------------*/ + +html, body { + background-color: #f9f9f9; + font-family: 'Open Sans', sans-serif; + font-size: 16px; +} + +header { + background-color: #1abc9c; + box-shadow: 0 2px 6px 1px #a7a7a7; + color: #ecf0f1; + height: 5rem; +} + +footer { + background-color: #16a085; + bottom: 0; + color: #ecf0f1; + height: 7rem; + margin-top: 2em; + text-align: center; + width: 100%; +} + +footer p { + height: 7rem; + line-height: 7rem; +} + +h1, h3 { + padding: 4px; +} + +h1 { + font-size: 2rem; + font-weight: bold; +} + +h3 { + font-size: 1.4rem; +} + +a { + text-decoration: none; +} + +input[type="text"], input[type="range"] { + border: 1px solid #bdc3c7; + border-radius: 2px; + margin-left: 1rem; + vertical-align: middle; +} + +input[type=range]{ + -webkit-appearance: none; +} + +input[type=range]::-webkit-slider-thumb { + -webkit-appearance: none; + border: none; + height: 1.2rem; + width: 1.2rem; + border-radius: 50%; + background: #1abc9c; + margin-top: -.5rem; +} + +input[type=range]::-webkit-slider-runnable-track { + background: #ccc; + height: .2rem; +} + +.action-button { + background-color: #1abc9c; + border: none; + border-bottom: 3px solid #16a085; + border-radius: 2px; + color: #ecf0f1; + display: inline-block; + font-size: 1rem; + font-weight: bold; + height: 3rem; + padding: 4px; + width: 6rem; +} + +.action-button:hover { + background-color: #16a085; +} + +#site-title-wrapper { + display: inline-block; + height: 5rem; + width: 15%; +} + +#site-icon-wrapper { + display: inline-block; + margin-left: 1rem; + margin-top: -.5rem; + vertical-align: middle; + width: 2.5rem; +} + +#site-icon-wrapper img { + display: inline-block; + max-height: 100%; + max-width: 100% +} + +#site-title { + display: inline-block; + font-weight: bold; + height: 5rem; + line-height: 5rem; + margin-left: .1rem; +} + +#username { + margin-right: .7rem; +} + +#logout { + float: right; + height: inherit; + line-height: 5rem; + margin-right: 1rem; +} + +#logout-button { + background-color: #ecf0f1; + border-bottom-color: #bdc3c7; + color: #222222; + height: 2.5rem; + width: 5rem; +} + +#logout-button:hover { + background-color: #bdc3c7; +} + +#content { + margin-top: 2rem; + text-align: center; + width: 100%; +} + +.main-container { + background: #ecf0f1; + border-radius: 4px; + box-shadow: 0px 2px 10px 2px #95a5a6; + display: block; + min-height: 50vh; + margin: 2rem 0 0 25%; + padding: 1rem; + text-align: left; + width: 50%; +} + +.survey-item, .result-item, #results-email-container { + box-sizing: border-box; + display: block; + margin: 1.5rem 0; + padding: 4px; +} + +.survey-item span { + font-size: 1rem; + margin-left: 1rem; +} + +#email-results-button, #goHome { + height: 2rem; + line-height: 2rem; + margin-left: 1rem; + text-align: center; +} + +#mean-girls-gif { + display: block; + margin-left: auto; + margin-right: auto; +} + diff --git a/Labs/Lab_Flask/app/templates/.DS_Store b/Labs/Lab_Flask/app/templates/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..6ef9ee801ced05d0b224b8fd7b951f50252775ce GIT binary patch literal 6148 zcmeHKO-sW-5PcJiwAMqR7mqo568s0DRKcs>t=867h(>B7=qW$YAK(x0f7Ca-L$Iy6 zN|70uefu$QmVF7CEC3mllT)AvpiNgyI&6M1U02_-#Af!15^|hijwK$EU*ucSKCz1m z=(Fo!j9a{5iXYFfxEtrin5+6~oYRl#$!f(GI6#g9Gd$p_k@LYg<%n_mj4k+fjJQ`x zoO85bhIj5eY04s(nq?J?J)nU{UiRC3gu<#Qv;A$Okg#3j$MBsQEox!&M) z180F(vfmn6UmGkA-CO}zz!lgj1z5Ay+TDoWx&p3%D^M$---nd0m>E_P!>5ByxB?Jc zoDRmm{xB*hHOvgFh+Lsbq!J@l?1~|g&iT~hGQ%ojq(kiTA-1#F4MoE4%%6sENEXps zSHKlmS70v=ds_d`n(zPXBp + + + + + {% block title %}{% endblock %} - Ape Ask + + + + {% block styles %}{% endblock %} + + + + +
+ {% block header %} +
+
+ +
+

Ape Ask

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

© Copyright 2016 Ape Ask, all rights reserved

+
+ + + + \ No newline at end of file diff --git a/Labs/Lab_Flask/app/templates/login.html b/Labs/Lab_Flask/app/templates/login.html new file mode 100755 index 0000000..971b427 --- /dev/null +++ b/Labs/Lab_Flask/app/templates/login.html @@ -0,0 +1,16 @@ +{% 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/Lab_Flask/app/templates/not_authorized.html b/Labs/Lab_Flask/app/templates/not_authorized.html new file mode 100755 index 0000000..99a0c25 --- /dev/null +++ b/Labs/Lab_Flask/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/Lab_Flask/app/templates/page_not_found.html b/Labs/Lab_Flask/app/templates/page_not_found.html new file mode 100755 index 0000000..dadcc99 --- /dev/null +++ b/Labs/Lab_Flask/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/Lab_Flask/app/templates/results.html b/Labs/Lab_Flask/app/templates/results.html new file mode 100755 index 0000000..f28ad5b --- /dev/null +++ b/Labs/Lab_Flask/app/templates/results.html @@ -0,0 +1,40 @@ +{% 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 favorite color is {{ surveyResponse['color']}} + Your favorite food is {{ surveyResponse['food']}} + Your favorite vacation spot is {{ surveyResponse['vacation']}} + +

Wow! Your front end skillz are getting sharp!

+ Before IO Lab, your front end skillz were at a {{ surveyResponse['fe-before']}} + But in just a few short weeks of IO Lab, your front end skillz are now a {{ surveyResponse['fe-after']}} + + + +
+ Thanks for filling out the survey, here's a Mean Girls gif to brighten up your day! +
+ +
+
+ +
+{% endblock %} \ No newline at end of file diff --git a/Labs/Lab_Flask/app/templates/survey.html b/Labs/Lab_Flask/app/templates/survey.html new file mode 100755 index 0000000..166e68f --- /dev/null +++ b/Labs/Lab_Flask/app/templates/survey.html @@ -0,0 +1,31 @@ +{% extends "base.html" %} +{% block title %} + Survey +{% endblock %} + + +{% block header %} + {{super()}} +
+ Logged in as {{ name }} + +
+{% endblock %} + +{% block content %} +

A Little Survey About You

+
+

Some of your favorites

+ + + + +

Let's look at your front end skillz progression

+ + + + +
+{% endblock %} \ No newline at end of file diff --git a/Labs/Lab_Flask/app/views.py b/Labs/Lab_Flask/app/views.py new file mode 100755 index 0000000..f288d9d --- /dev/null +++ b/Labs/Lab_Flask/app/views.py @@ -0,0 +1,60 @@ +from app import myapp +from flask import request, render_template, session, redirect, url_for, escape +import os +import requests +import json + + +myapp.secret_key = os.urandom(24) + +@myapp.route('/') +@myapp.route('/index') +def index(): + username = '' + if 'username' in session: + username = escape(session['username']) + return render_template('survey.html', name=username) + else: + return render_template('login.html') + +@myapp.route('/login', methods=['GET', 'POST']) +def login(): + if request.method=='POST': + session['username'] = request.form.get("username") + session['email'] = request.form.get("email") + 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 = '' + giphy_api = 'http://api.giphy.com/v1/gifs/random?api_key=dc6zaTOxFJmzC&tag=mean+girls' + response = requests.get(giphy_api) + response_json = json.loads(response.text) + gif_url = response_json['data']['fixed_width_downsampled_url'] + print(gif_url) + + + if 'username' in session: + username = escape(session['username']) + email = escape(session['email']) + surveyResponse = {} + surveyResponse['color'] = request.form.get('color') + surveyResponse['food'] = request.form.get('food') + surveyResponse['vacation'] = request.form.get('vacation') + surveyResponse['fe-before'] = request.form.get('feBefore') + surveyResponse['fe-after'] = request.form.get('feAfter') + surveyResponse['gif'] = gif_url + 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/Lab_Flask/app/views.pyc b/Labs/Lab_Flask/app/views.pyc new file mode 100755 index 0000000000000000000000000000000000000000..259c8d15006dc6248a0b27530dcff389a33fa068 GIT binary patch literal 2299 zcmcIlOK&4Z5U%cV{79U{&I+`!Aoj2aUpBEo;(%6Ym$2f33>q&8jVxIcPdgcVUQD;c zM#`STPvA#!Z*QJef3p2_-l9jr@#OBaYpOU7QUZj*teJx z{42_caz&9M#cNHOraYi1pu9m*gYqqkwkU5>)TF#cQH%06MQy)3psYhthfIeS+mtlu zN|8}C-QjuBrDSWZVY$h2(xP991^h?5n{91MI+Wms9Xi!8sieE!7VT~J?8@=IjedWl z-@kLVx7pK^J$*|0a`s@OKcFO_@!$b4NZ;Z!P>>vBlV8MDHE8m(g{d|_uZ(qWU*sY& z_0*ZX%3^24ZjH5RS-7^?le9K7Cx%s>P3L9p_$Fg#ab-s7L&%O_IYnEt^z-$_F7MJs$u#*qr7Vk_KHenrh5z0eg%rjwON-4qzkuwz8%! z;@sFBEbOX2Hy4LzF3%jlDu!(cS$Uckq8|iUhBC3Mp~fU2g&meK{A53ebo|BS2i$Kb zCv{N|r^DfJ^0l!`S5}iaGp{G##wU;GS!|aRU^_Wa%`f(_x)8Vp0tVXh`xG=)SM^j+ zdw|3rfipMmtW2z9kG^^NO5FbbyYZ_TpW+W2jxp>@Oo)2{rYTx#s$a+w=m0vL$JaBq z3w)voplERR0jB4rhmh$o3imKe(BiMj<1`ByL_s(d-Y`PmLGcS|&pmVuZphc%04CCX zQ4?JHxYu%SN$=~v>MP4Q9>G?w++AFTFka&Vid<<@>ouTQuLD8^pw$|N0S7RW=tHgm zA2u2Cy}@=(i+~ouMd)z}v>IT{wN{FbwOhBf((72;ysd39 zvaD_2)^;}9ZD>Km9YXg*StAjb@OYO`T&ZBpwmshK`Ng&gTkhJ>WEGDGL#T+GWd zk@`Q6XR+Hfs=4{ffTYH9Ezix<6In@}&CQFsLn-sEu*9=;YKd(3O*5b35` zHyYK{?<@St{E<$7gOf9Mlm|CGAyE$kSOXpbd@yLP(P7!|k>#I|Dn2#SqI78Zt0EDI zl)S>F?1Km}RI!`(en@=A61M&306#xJL literal 0 HcmV?d00001 diff --git a/Labs/Lab_Flask/run.py b/Labs/Lab_Flask/run.py new file mode 100755 index 0000000..dae9904 --- /dev/null +++ b/Labs/Lab_Flask/run.py @@ -0,0 +1,3 @@ +#!flask/bin/python +from app import myapp +myapp.run(debug=True,host='0.0.0.0')