Introduccion app engine con python

2,679 views

Published on

Slides de la charla en GTUG Buenos Aires acerca de el Google App Engine con Python

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,679
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
30
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Introduccion app engine con python

  1. 1. Sebastián Serrano [email_address] twitter: sserrano44 http://www.lp-gtug.org Google App Engine + Python en 5 minutos
  2. 2. Cloud Computing??
  3. 3. 0% Administracion = 100% Desarrollo
  4. 4. Google App Engine <ul><ul><li>Fácil de Desarrollar </li></ul></ul><ul><ul><li>Fácil de Mantener </li></ul></ul><ul><ul><li>Fácil de Escalar </li></ul></ul>
  5. 5. Servicios del App Engine
  6. 6. Lenguajes
  7. 7. Empezar es GRATIS! <ul><ul><li>~5M pageviews/month  </li></ul></ul><ul><ul><li>6.5 CPU hrs/day  </li></ul></ul><ul><ul><li>1 GB storage  </li></ul></ul><ul><ul><li>650K URL Fetch calls/day  </li></ul></ul><ul><ul><li>2,000 recipients emailed  </li></ul></ul><ul><ul><li>1 GB/day bandwidth </li></ul></ul><ul><ul><li>100,000 tasks enqueued  </li></ul></ul><ul><ul><li>650K XMPP messages/day  </li></ul></ul>
  8. 8. App Engine Dashboard
  9. 9. SDK Console
  10. 10. <ul><ul><li>Descargar el SDK </li></ul></ul><ul><ul><ul><li>http://code.google.com/appengine </li></ul></ul></ul><ul><ul><li>Registrar una cuenta </li></ul></ul><ul><ul><ul><li>https://appengine.google.com </li></ul></ul></ul><ul><ul><li>Escribir código - deploy! </li></ul></ul>Primeros pasos App Engine
  11. 11. Arrancar un proyecto $ dev_appserver.py helloworld # run dev svr $ appcfg.py update helloworld # deploy live Linux, MacOS, etc. command-line: Windows GUI (y Mac):
  12. 12. Contenido basico app.yaml – archivo configuración main principal index.yaml – generado automáticamente para indexar nuestros datos main.py – el código de la aplicación
  13. 13. main.py
  14. 14. Local development server $ dev_appserver.py helloworld INFO 2009-03-04 17:51:22,354 __init__.py]
  15. 15. Deploying the application <ul><ul><li>Set application identifier </li></ul></ul><ul><ul><li>Run deploy script </li></ul></ul><ul><ul><li>You're live! </li></ul></ul>
  16. 16. Modifying app.yaml application:  helloworld version: 1 runtime: python api_version: 1 handlers: - url: .* script: main.py
  17. 17. Running the deploy script $ appcfg.py update helloworld Scanning files on local disk. Initiating update. Email: ...
  18. 18. You're live!
  19. 19. Demo time??
  20. 20. main.py: Skeleton application from google.appengine.ext import webapp from google.appengine.ext.webapp import util class MainHandler(webapp.RequestHandler):    def get(self):      self.response.out.write('Hello world!') def main():    application = webapp.WSGIApplication([('/', MainHandler)],                                        debug=True)    util.run_wsgi_app(application) if __name__ == '__main__':    main()
  21. 21. main.py: Adding a handler from google.appengine.ext import webapp from google.appengine.ext.webapp.util import run_wsgi_app class MainHandler(webapp.RequestHandler):      def get(self):          self.response.out.write('<h1>Hello world!</h1>')          self.response.out.write('''              <form action=&quot;/sign&quot; method=post>              <input type=text name=content>              <br><input type=submit value=&quot;Sign Guestbook&quot;>              </form>          ''') class GuestBook(webapp.RequestHandler):      def post(self):          self.response.out.write(              '<h2>You wrote:</h2> %s' % self.request.get('content')          ) application = webapp.WSGIApplication([      ('/', MainHandler),      ('/sign', GuestBook), ], debug=True) # start_wsgi_app etc ... 
  22. 22. main.py: Persisting to the datastore class GuestBook(webapp.RequestHandler):      def post(self):          greeting = Greeting()          greeting.content = self.request.get('content')          greeting.put()          self.redirect('/')
  23. 23. main.py: Collecting values from the datastore class MainHandler(webapp.RequestHandler):      def get(self):          self.response.out.write('Hello world!')          self.response.out.write('<h1>My GuestBook</h1><ol>')          greetings = Greeting.all()          for greeting in greetings:              self.response.out.write('<li> %s' % greeting.content)          self.response.out.write('''              </ol><hr>              <form action=&quot;/sign&quot; method=post>              <textarea name=content rows=3 cols=60></textarea>              <br><input type=submit value=&quot;Sign Guestbook&quot;>              </form>          ''')
  24. 24. Live demo??
  25. 25. Gracias! <ul><li>email: sebastian@devsar.com </li></ul><ul><li>twitter: sserrano44 </li></ul>

×