Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Flask on App Engine

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

More Decks by David Baumgold

Other Decks in Programming

Transcript

  1. !"#$%&'"()*+,%-
    ./$0*$0*1+,2+3&&44&&567844%"#$%9"()*+,%:;+)-

    View Slide

  2. <($;=&>,"/=&>";?/-
    •  @$;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-

    View Slide

  3. !+0R?&>$*5?&
    S+(A&>A")C1+A=-

    View Slide

  4. N/C&J5"?&S+(&&
    LC?&>+A&>ACC-

    View Slide

  5. 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&>,"/=-

    View Slide

  6. hello.py
    from flask import Flask
    app = Flask(__name__)
    @app.route('/')
    def index():
    return 'Hello Flask!'
    if __name__ == '__main__':
    app.run()

    View Slide

  7. What it looks like

    View Slide

  8. hello.py
    from flask import Flask, render_template
    app = Flask(__name__)
    @app.route('/', defaults={'name': 'Flask'})
    @app.route('/')
    def index(name):
    return render_template('hello.html',
    name=name)
    if __name__ == '__main__':
    app.run()

    View Slide

  9. hello.html
    {% extends 'layout.html' %}
    {% block title %}Greetings{% endblock %}
    {% block body %}
    Hello {{ name }}!
    {% endblock %}

    View Slide

  10. layout.html


    {% block title %}{% endblock %}


    {% block body %}{% endblock %}

    View Slide

  11. J53&E77&Y0*$0CZ-

    View Slide

  12. !""#$%!&$'()*+#!,-!""*
    ./0,$'()*12123*
    04(&$5/)*"6&7'(*
    !"$8./0,$'()*3*
    *
    7!(9#/0,)*
    2*40#)*:;*
    **,%0$"&)*5!$(:"6*
    "77:3"),-

    View Slide

  13. $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-

    View Slide

  14. J5"?&C,/C&&
    5"#C&3+(&*+?Z-

    View Slide

  15. YU?C0/$+0/-

    View Slide

  16. 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^]-

    View Slide

  17. +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*-
    !!
    !!
    !!
    !!

    View Slide

  18. !+;()C0?"?$+0-
    FGGb&7"*C/-

    View Slide

  19. !"#$%&' (&)*)+#)&'
    >,"/=-
    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-

    View Slide