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

Intro to Google App Engine - Python

Intro to Google App Engine - Python

Python CodeLabs - Google App Engine - Python
http://eueung.github.io/EL6240/gae

Eueung Mulyana

December 11, 2015
Tweet

More Decks by Eueung Mulyana

Other Decks in Programming

Transcript

  1. i m p o r t w e b a

    p p 2 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - c l a s s M a i n H a n d l e r ( w e b a p p 2 . R e q u e s t H a n d l e r ) : d e f g e t ( s e l f ) : s e l f . r e s p o n s e . w r i t e ( ' H e l l o w o r l d ! ' ) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - a p p = w e b a p p 2 . W S G I A p p l i c a t i o n ( [ ( ' / ' , M a i n H a n d l e r ) ] , d e b u g = T r u e ) Generated Structure/Codes a p p l i c a t i o n : h e l l o v e r s i o n : 1 r u n t i m e : p y t h o n 2 7 a p i _ v e r s i o n : 1 t h r e a d s a f e : y e s h a n d l e r s : - u r l : / f a v i c o n \ . i c o s t a t i c _ f i l e s : f a v i c o n . i c o u p l o a d : f a v i c o n \ . i c o - u r l : . * s c r i p t : m a i n . a p p l i b r a r i e s : - n a m e : w e b a p p 2 v e r s i o n : " 2 . 5 . 2 " app.yaml 6 / 22
  2. Uploading GAE Launcher -> Deploy a p p l i

    c a t i o n : h e l l o - g a e - 1 1 5 6 v e r s i o n : 1 r u n t i m e : p y t h o n 2 7 a p i _ v e r s i o n : 1 t h r e a d s a f e : y e s h a n d l e r s : - u r l : / f a v i c o n \ . i c o s t a t i c _ f i l e s : f a v i c o n . i c o u p l o a d : f a v i c o n \ . i c o - u r l : . * s c r i p t : m a i n . a p p l i b r a r i e s : - n a m e : w e b a p p 2 v e r s i o n : " 2 . 5 . 2 " app.yaml 10 / 22
  3. A (Minimal) Guestbook source < h t m l >

    < b o d y > A n a n o n y m o u s p e r s o n w r o t e : < b l o c k q u o t e > t e s t d u a d u a d u a d u a d u a < f o r m a c t i o n = " / s i g n " m e t h o d = " p o s t " > < d i v > < t a g - t e x t a r e a n a m e = " c o n t e n t " r o w s = " 3 " c o l s = " 6 0 " > < / t a g - t e x t a r e a < d i v > < i n p u t t y p e = " s u b m i t " v a l u e = " S i g n G u e s t b o o k " > < / d i v > < / f o r m > < / b o d y > < / h t m l > Local 14 / 22
  4. guestbook.py i m p o r t c g i

    i m p o r t d a t e t i m e i m p o r t w e b a p p 2 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - f r o m g o o g l e . a p p e n g i n e . e x t i m p o r t n d b f r o m g o o g l e . a p p e n g i n e . a p i i m p o r t u s e r s # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - g u e s t b o o k _ k e y = n d b . K e y ( ' G u e s t b o o k ' , ' d e f a u l t _ g u e s t b o o k ' ) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - c l a s s G r e e t i n g ( n d b . M o d e l ) : a u t h o r = n d b . U s e r P r o p e r t y ( ) c o n t e n t = n d b . T e x t P r o p e r t y ( ) d a t e = n d b . D a t e T i m e P r o p e r t y ( a u t o _ n o w _ a d d = T r u e ) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - c l a s s G u e s t b o o k ( w e b a p p 2 . R e q u e s t H a n d l e r ) : d e f p o s t ( s e l f ) : g r e e t i n g = G r e e t i n g ( p a r e n t = g u e s t b o o k _ k e y ) i f u s e r s . g e t _ c u r r e n t _ u s e r ( ) : g r e e t i n g . a u t h o r = u s e r s . g e t _ c u r r e n t _ u s e r ( ) g r e e t i n g . c o n t e n t = s e l f . r e q u e s t . g e t ( ' c o n t e n t ' ) g r e e t i n g . p u t ( ) s e l f . r e d i r e c t ( ' / ' ) c l a s s M a i n P a g e ( w e b a p p 2 . R e q u e s t H a n d l e r ) : d e f g e t ( s e l f ) : s e l f . r e s p o n s e . o u t . w r i t e ( ' < h t m l > < b o d y > ' ) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - g r e e t i n g s = n d b . g q l ( ' S E L E C T * ' ' F R O M G r e e t i n g ' ' W H E R E A N C E S T O R I S : 1 ' ' O R D E R B Y d a t e D E S C L I M I T 1 0 ' , g u e s t b o # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - f o r g r e e t i n g i n g r e e t i n g s : i f g r e e t i n g . a u t h o r : s e l f . r e s p o n s e . o u t . w r i t e ( ' < b > % s < / b > w r o t e : ' % g r e e t i n g . e l s e : s e l f . r e s p o n s e . o u t . w r i t e ( ' A n a n o n y m o u s p e r s o n w r o t e : ' s e l f . r e s p o n s e . o u t . w r i t e ( ' < b l o c k q u o t e > % s < / b l o c k q u o t e > ' # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - s e l f . r e s p o n s e . o u t . w r i t e ( " " " < f o r m a c t i o n = " / s i g n " m e t h o d = " p o s t " > < d i v > < t a g - t e x t a r e a n a m e = " c o n t e n t " r o w s = " 3 " c o l s = " 6 0 " > < < d i v > < i n p u t t y p e = " s u b m i t " v a l u e = " S i g n G u e s t b o o k " > < / d i v < / f o r m > < / b o d y > < / h t m l > " " " ) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - a p p = w e b a p p 2 . W S G I A p p l i c a t i o n ( [ ( ' / ' , M a i n P a g e ) , ( ' / s i g n ' , G u e s t b o o k ) ] , d e b u g = T r u e ) 17 / 22
  5. a p p l i c a t i o

    n : g u e s t b o o k - t e s t - 1 1 5 6 v e r s i o n : 1 r u n t i m e : p y t h o n 2 7 a p i _ v e r s i o n : 1 t h r e a d s a f e : y e s h a n d l e r s : - u r l : . * s c r i p t : g u e s t b o o k . a p p l i b r a r i e s : - n a m e : w e b a p p 2 v e r s i o n : " 2 . 5 . 2 " app.yaml 18 / 22
  6. References 1. Hello, World! in 5 minutes - Python —

    Google Cloud Platform 2. Introduction - Python — Google Cloud Platform 21 / 22