Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Flask on App Engine
Search
David Baumgold
May 23, 2011
Programming
5
350
Flask on App Engine
Slides to a talk that I presented at the Boston App Engine meetup on May 23, 2011.
David Baumgold
May 23, 2011
Tweet
Share
More Decks by David Baumgold
See All by David Baumgold
GDI Git
singingwolfboy
1
390
Advanced Git
singingwolfboy
3
780
Get Started with Git
singingwolfboy
5
2k
Prototyping APIs with Flask
singingwolfboy
5
1.3k
Flask-Dance
singingwolfboy
2
1.3k
Advanced Git
singingwolfboy
1
230
Advanced Git
singingwolfboy
19
2.7k
SQL Crash Course
singingwolfboy
3
1.3k
Flask vs Django
singingwolfboy
23
6.6k
Other Decks in Programming
See All in Programming
JVM の仕組みを理解して PHP で実装してみよう
m3m0r7
PRO
1
240
クラシルリワードにおける iOSアプリ開発の取り組み
funzin
1
800
『Python → TypeScript』オンボーディング奮闘記
takumi_tatsuno
1
130
Practical Domain-Driven Design - Workshop at NDC 2025
mufrid
0
130
推論された型の移植性エラーTS2742に挑む
teamlab
PRO
0
150
技術的負債と戦略的に戦わざるを得ない場合のオブザーバビリティ活用術 / Leveraging Observability When Strategically Dealing with Technical Debt
yoshiyoshifujii
0
160
TVer iOSチームの共通認識の作り方 - Findy Job LT iOSアプリ開発の裏側 開発組織が向き合う課題とこれから
techtver
PRO
0
700
PT AI без купюр
v0lka
0
190
ソフトウェア品質特性、意識してますか?AIの真の力を引き出す活用事例 / ai-and-software-quality
minodriven
19
6.6k
Reactive Thinking with Signals, Resource API, and httpResource @Devm.io Angular 20 Launch Party
manfredsteyer
PRO
0
130
AIにコードを生成するコードを作らせて、再現性を担保しよう! / Let AI generate code to ensure reproducibility
yamachu
7
6k
Rethinking Data Access: The New httpResource in Angular
manfredsteyer
PRO
0
210
Featured
See All Featured
Adopting Sorbet at Scale
ufuk
76
9.4k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Documentation Writing (for coders)
carmenintech
71
4.8k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
GraphQLとの向き合い方2022年版
quramy
46
14k
Designing for humans not robots
tammielis
253
25k
Code Reviewing Like a Champion
maltzj
523
40k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
47
2.8k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
48
5.4k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Transcript
!"#$%&'"()*+,%- ./$0*$0*1+,2+3&&44&&567844%"#$%9"()*+,%:;+)-
<($;=&>,"/=&>";?/- • @$;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.py from flask import Flask app = Flask(__name__) @app.route('/') def
index(): return 'Hello Flask!' if __name__ == '__main__': app.run()
What it looks like
hello.py from flask import Flask, render_template app = Flask(__name__) @app.route('/',
defaults={'name': 'Flask'}) @app.route('/<name>') 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 %} <h1>Hello {{ name }}!</h1> {% endblock %}
layout.html <!doctype html> <head> <title>{% block title %}{% endblock %}</title>
</head> <body> {% block body %}{% endblock %} </body>
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:!@,"!&7A88+$#/88BB* ****#$@8"!&7*N*',:"!&7:P'$(A0''&8"!&7<*C#$@CB* ****/==,*N*Q',:"!&7:P'$(A#$@8"!&7<*+B*+'0*+*$(** ********',:#$,&9$0A#$@8"!&7B*$+*+:/(9,?$&7AO:/==OBR* ****,6,:"!&7:/>&/(9AQ#$@8"!&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#!,-@88(!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/9@&$5/'4&M^_11A*
9/+*$(9/R@(!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-