Slides to a talk that I presented at the Boston App Engine meetup on May 23, 2011.
!"#$%&'"()*+,%-./$0*$0*1+,2+3&&44&&567844%"#$%9"()*+,%:;+)-
View Slide
<($;=&>,"/=&>";?/-• @$;A+BA")C1+A=8&%C/$*0C%&B+A&/)",,&"77/-• DC,C"/C%&E7A$,&FGHG&93&EA)$0&D+0";5CA-• HGGI&JKLM&;+)7,$"0?-• N0$;+%C&?+7O?+O9+6+)-• 'K!&,$;C0/C%&P%+&15"?&3+(&1"0?Q-
!+0R?&>$*5?&S+(A&>A")C1+A=-
N/C&J5"?&S+(&&LC?&>+A&>ACC-
T+1&"9+(?&&"0&CU")7,CV-W5C&0CU?&BC1&/,$%C/&1CAC&/5")C,C//,3&/?+,C0&BA+)&EA)$0&D+0";5CAX&-?5C&"(?5+A&+B&>,"/=-
hello.pyfrom flask import Flaskapp = Flask(__name__)@app.route('/')def index():return 'Hello Flask!'if __name__ == '__main__':app.run()
What it looks like
hello.pyfrom flask import Flask, render_templateapp = Flask(__name__)@app.route('/', defaults={'name': 'Flask'})@app.route('/')def index(name):return render_template('hello.html',name=name)if __name__ == '__main__':app.run()
hello.html{% extends 'layout.html' %}{% block title %}Greetings{% endblock %}{% block body %}Hello {{ name }}!{% endblock %}
layout.html{% block title %}{% endblock %}{% block body %}{% endblock %}
J53&E77&Y0*$0CZ-
!""#$%!&$'()*+#!,-!""*./0,$'()*12123*04(&$5/)*"6&7'(*!"$8./0,$'()*3**7!(9#/0,)*2*40#)*:;***,%0$"&)*5!$(:"6*"77:3"),-
$5"'0&*',<*,6,*+0'5*=''=#/:!""/(=$(/:/>&:?/@!"":4&$#*$5"'0&*04(8?,=$8!""**9/+*04(8!""AB)*****+0'5*+#!,-!""*$5"'0&*!""******$+*',:/(.$0'(:=/&ACDEFGEF8DHIJKLFECB:,&!0&,?$&7ACM/.CB)*********!"":9/@4=NJ04/******04(8?,=$8!""A!""B**$+*88(!5/88*NN*O885!$(88O)*****0''&8"!&7*N*',:"!&7:9$0(!5/A',:"!&7:[email protected],"!&7A88+$#/88BB*****#[email protected]"!&7*N*',:"!&7:P'$(A0''&8"!&7<*C#[email protected]*****/==,*N*Q',:"!&7:P'$(A#[email protected]"!&7<*+B*+'0*+*$(**********',:#$,&9$0A#[email protected]"!&7B*$+*+:/(9,?$&7AO:/==OBR*****,6,:"!&7:/>&/(9AQ#[email protected]"!&7R*S*/==,B*************04(8!""AB*)"$0:73-
J5"?&C,/C&&5"#C&3+(&*+?Z-
YU?C0/$+0/-
YU?C0/$+0/->+A)&[",$%"?$+0->$,C&N7,+"%/-W5C)$0*-N0$?&WC/?$0*-\E(?5-\7C0M!-LA"#"?"A-LC0/5$-!C9(*&W++,9"A-]KD>&^A+?C;?$+0-]";5$0*-W"/=&<(C(C/-M0?CA0"?$+0",$_"?$+0-K?"?$;&E//C?&@"0"*C)C0?-WC/?&D(00CA-`@aOD^]-
+0'5*+#!,-*$5"'0&*H#!,-<*0/(9/08&/5"#!&/*+0'5*+#!,-/R&:%!%7/*$5"'0&*T!%7/**!""*M*H#!,[email protected](!5/88A*!"":%'(+$=PBTKTUD8IVWDBQ*M*B=!/5/5%!%7/9B*%!%7/*M*T!%7/@!""A**X!"":0'4&/@BYB<*9/+!4#&,MZB(!5/B)*BH#!,-B[A*X!"":0'4&/@BY\(!5/]BA*X%!%7/:%!%7/[email protected]&$5/'4&M^_11A*9/+*$(9/[email protected](!5/A)*****0/&40(*0/(9/08&/5"#!&/@B7/##':7&5#B<*(!5/M(!5/A**$+*88(!5/88*MM*B885!$(88B)******!"":04(@A*E%%&]";5$0*-!!!!!!!!
!+;()C0?"?$+0-FGGb&7"*C/-
!"#$%&' (&)*)+#)&'>,"/=-567844c"/=:7+;++:+A*-EA)$0&D+0";5CA- !"#$%&'"()*+,%-.)$?/(5$?+- ./$0*$0*1+,2+3-567844*$?5(9:;+)4)$?/(5$?+4c"/=-!+,-.")*#/%+*0'567844*$?5(9:;+)4/$0*$0*1+,2+34c"/=O"77C0*$0CO/=C,C?+0-