SlideShare a Scribd company logo
Google App Engine
Django-style
Python Development on
Google Infrastructure
- Allows deployment of web applications on Google’s famously robust infrastructure.
- Google is a big Python shop - Python is the only language initially supported on AppEngine
- (“Wordle” Google AppEngine application).
• Data Store
• Images
• Mail
• Memcache
• URL Fetch
• Users
App Engine APIs
- Data Store API offers persistent storage in a RDBMS-like environment
- Image API offers uploadable images and transformations such as resize, rotate, crop, flip,
and the mysterious “I’m feeling lucky” transformation.
- Mail API offers email services.
- Memcache API offers use of the same memory caching technology used in production
Django deployments.
- URL Fetch offers HTTP client services, allowing HTTP access to other web services.
- Users API offers integration with Google Accounts.
App Engine Basics
- We’re going to look briefly at creating “Hello World” as an AppEngine app.
Dev Environment
- First you need to download the development environment.
- Nice graphical tools available for Windows and OS X
- Command line tools otherwise available
Dev Environment
- On OS X, the app launcher shows the apps you have available, providing tools to run them
locally and deploy them to Google.
Dev Environment
dev_appserver.py
appcfg.py
- Ultimately this is icing over the command line tools that do the work:
dev_appserver.py is the development web server.
appcfg.py is the tool for uploading your app to Google.
- First you need to create an application at appengine.google.com.
- Currently you are limited to 3 applications, and you must live on the
namespace .appspot.com.
Vanilla App
- From there you can generate a new app. A basic AppEngine app contains three files at
minimum:
1. “app.yaml” is a YAML file that identifies basic information about the application, and maps
URL patterns to “handlers”.
2. “index.yaml” is a YAML file that is used in conjunction with queries to the Data Store
service.
4. “main.py” is the starter “handler” code. It is referenced in “app.yaml”.
app.yaml
- specifies meta-data about the application

 - name

 - version
- specifies “handlers”, somewhat similar to how Apache maps url patterns to handlers.
- handlers are python files.
handler:
main.py
- handler classes subclass RequestHandler
- handler is registered by sending the handler class and the context path to a
WSGIApplication.
- the WSGIApplication is passed to the wsgiref.handlers module (part of standard Python
WSGI).
(WSGI, the Web Server Gateway Interface, is the standard for Python web applications. It is
Django’s goal for 1.0 to be 100% WSGI compliant.)
- The Handler implements methods corresponding to HTTP methods. These methods are
called when an HTTP request comes in that matches the context path set in the
WSGIApplication.
Development
Commands
• dev_appserver.py django-nyc
• appcfg.py update django-nyc
- dev_appserver.py runs the development server for that app, analagous to manage.py
runserver
- appcfg.py will upload the latest version of the application to Google

 - you must have created the app on the AppEngine console before doing this
Where’s the Django?
The Django Helper
project
- Google has a project that allows people to adapt Django projects to Google AppEngine
- Allows for a higher level of abstraction than the vanilla AppEngine apps provide.
appengine_django
- google-app-engine-django provides a new app for you to copy into your project:
appengine_django. You need to add it to your INSTALLED_APPS.
app.yaml
- app.yaml is mostly the same.
- note that /static is routed to a static directory, and not to the python handler
main.py
- main.py is supplied by appengine_django. It uses a built in handler to act as the
RequestHandler - delegating to the Django framework.
- from here the request path becomes standard Django: the settings.py file specifies the
main urls.py file, which in turn delegate to other urls.py files, or maps requests to views.
Data Modeling
- Google doesn’t use a relational database system in the traditional sense.
- The appengine_django app provides an alternate ORM to the application than the standard
Django ORM.
- The familiar Poll app, redone in AppEngine.
- Note that the *Property objects are analogous to Field classes in the Django ORM
There is no spoon
syncdb.
There’s also no admin
console.
W
TF?
http://localhost:8080/_ah/admin
- There is, however, a different kind of development admin console that allows browsing of
data...
http://localhost:8080/_ah/admin
- ...and entry of new data.
Django versions
• 0.96 supported out of the box
• Later versions (trunk) can be supported by
adding Django itself as a module in the
application.
Discussion

More Related Content

PPTX
Introduction to Django
Knoldus Inc.
 
PDF
Django training in hyderabad
GURUPRASANTH33
 
ODP
* DJANGO - The Python Framework - Low Kian Seong, Developer
Linuxmalaysia Malaysia
 
PDF
Getting Started With Django
jeff_croft
 
PDF
A Basic Django Introduction
Ganga Ram
 
PDF
Milos Marinkovic "Modular Android UI"
IT Event
 
PDF
A gentle intro to the Django Framework
Ricardo Soares
 
PDF
Django
Amanpreet Singh
 
Introduction to Django
Knoldus Inc.
 
Django training in hyderabad
GURUPRASANTH33
 
* DJANGO - The Python Framework - Low Kian Seong, Developer
Linuxmalaysia Malaysia
 
Getting Started With Django
jeff_croft
 
A Basic Django Introduction
Ganga Ram
 
Milos Marinkovic "Modular Android UI"
IT Event
 
A gentle intro to the Django Framework
Ricardo Soares
 

What's hot (20)

PPTX
Introduction to django
Sreenath Ramamoorthi
 
KEY
Intro To Django
Udi Bauman
 
PDF
Starters with Django
BeDjango
 
PDF
10x10 HTML5 Script Tag
Michelle
 
PPTX
Django
Harmeet Lamba
 
PDF
Web Analytics
Sarah Dutkiewicz
 
PPTX
Design Patterns for Smart Applications
Sri Ambati
 
PPTX
Tango with django
Jaysinh Shukla
 
PPTX
OutSystems Tricks & Tips for Complex UI Integrations
OutSystems
 
PDF
Skimlinks & Everyfeed for Drupal
buddaboy
 
PPTX
GDG Atlanta - Angular.js Demo and Workshop
Drew Morris
 
PDF
Angular.js for beginners
Basia Madej
 
PPTX
Building a local web application with Flask
Hoffman Lab
 
PDF
BDD for RIAs with JavaScript - Skills Matter
Carlos Ble
 
PPTX
AngularJS workshop for beginners.
Magizharasu Thirunavukkarasu
 
PDF
Django talk
psibi
 
PDF
A Dynamic Analysis Framework for Front-end JavaScript
Liang Gong
 
ODP
Using WordPress for Rapid Prototyping
Drew Morris
 
PDF
AngularJS Basics - Knowledge Sharing
Branko Djurkovic
 
PPTX
Micro frontend
Amr Abd El Latief
 
Introduction to django
Sreenath Ramamoorthi
 
Intro To Django
Udi Bauman
 
Starters with Django
BeDjango
 
10x10 HTML5 Script Tag
Michelle
 
Web Analytics
Sarah Dutkiewicz
 
Design Patterns for Smart Applications
Sri Ambati
 
Tango with django
Jaysinh Shukla
 
OutSystems Tricks & Tips for Complex UI Integrations
OutSystems
 
Skimlinks & Everyfeed for Drupal
buddaboy
 
GDG Atlanta - Angular.js Demo and Workshop
Drew Morris
 
Angular.js for beginners
Basia Madej
 
Building a local web application with Flask
Hoffman Lab
 
BDD for RIAs with JavaScript - Skills Matter
Carlos Ble
 
AngularJS workshop for beginners.
Magizharasu Thirunavukkarasu
 
Django talk
psibi
 
A Dynamic Analysis Framework for Front-end JavaScript
Liang Gong
 
Using WordPress for Rapid Prototyping
Drew Morris
 
AngularJS Basics - Knowledge Sharing
Branko Djurkovic
 
Micro frontend
Amr Abd El Latief
 
Ad

Viewers also liked (13)

PDF
App Engine On Air: Munich
dion
 
KEY
Gae icc fall2011
Juan Gomez
 
PDF
Google app-engine-with-python
Deepak Garg
 
PPT
Introduccion app engine con python
sserrano44
 
PDF
App Engine for Python Developers
Gareth Rushgrove
 
PDF
Google app engine python
Eueung Mulyana
 
PPTX
Using Google App Engine Python
Akshay Mathur
 
PPTX
Introduction to Google App Engine with Python
Brian Lyttle
 
PPTX
Google App Engine for Python - Unit01: Basic
Wei-Tsung Su
 
PDF
Soft-Shake 2016 : Jigsaw est prêt à tuer le classpath
Alexis Hassler
 
PDF
Google datastore & search api
Geoffrey Garnotel
 
PPTX
Google Cloud Platform. Google App Engine
Kwaye Kant
 
PDF
Google App Engine
Publicis Sapient Engineering
 
App Engine On Air: Munich
dion
 
Gae icc fall2011
Juan Gomez
 
Google app-engine-with-python
Deepak Garg
 
Introduccion app engine con python
sserrano44
 
App Engine for Python Developers
Gareth Rushgrove
 
Google app engine python
Eueung Mulyana
 
Using Google App Engine Python
Akshay Mathur
 
Introduction to Google App Engine with Python
Brian Lyttle
 
Google App Engine for Python - Unit01: Basic
Wei-Tsung Su
 
Soft-Shake 2016 : Jigsaw est prêt à tuer le classpath
Alexis Hassler
 
Google datastore & search api
Geoffrey Garnotel
 
Google Cloud Platform. Google App Engine
Kwaye Kant
 
Google App Engine
Publicis Sapient Engineering
 
Ad

Similar to App Engine (20)

PPTX
django
Mohamed Essam
 
PPT
Google App Engine
Sanguine_Eva
 
PDF
Pluggable patterns
Corey Oordt
 
DOCX
Company Visitor Management System Report.docx
fantabulous2024
 
PDF
Google App Engine for Java
Lars Vogel
 
PPTX
mobile development using node js and java
vishal choudhary
 
PPT
Google App Engine - Overview #1
Kay Kim
 
PDF
App engine install-windows
THINK IT Training
 
PPTX
File Repository on GAE
lynneblue
 
PDF
Appear IQ - Tutorials Backbone.js
Appear
 
PPTX
Google app engine
Renjith318
 
PPT
Google App Engine for Java
Lars Vogel
 
PDF
Introduction to Google App Engine - Naga Rohit S [ IIT Guwahati ] - Google De...
Naga Rohit
 
PPTX
Angular kickstart slideshare
SaleemMalik52
 
DOCX
ANGULAR JS LAB MANUAL(final) vtu2021 sch
kannikadg
 
PPTX
How Does Angular Work?
Albiorix Technology
 
PPTX
Infinite Scale - Introduction to Google App Engine
Marian Borca
 
PPTX
The Rails Engine That Could - In Motion
Andy Maleh
 
PPTX
UQ21CA642BA1-Unit-3-WAF-Class18-Introduction to Angular Routing.pptx
TamalDey28
 
Google App Engine
Sanguine_Eva
 
Pluggable patterns
Corey Oordt
 
Company Visitor Management System Report.docx
fantabulous2024
 
Google App Engine for Java
Lars Vogel
 
mobile development using node js and java
vishal choudhary
 
Google App Engine - Overview #1
Kay Kim
 
App engine install-windows
THINK IT Training
 
File Repository on GAE
lynneblue
 
Appear IQ - Tutorials Backbone.js
Appear
 
Google app engine
Renjith318
 
Google App Engine for Java
Lars Vogel
 
Introduction to Google App Engine - Naga Rohit S [ IIT Guwahati ] - Google De...
Naga Rohit
 
Angular kickstart slideshare
SaleemMalik52
 
ANGULAR JS LAB MANUAL(final) vtu2021 sch
kannikadg
 
How Does Angular Work?
Albiorix Technology
 
Infinite Scale - Introduction to Google App Engine
Marian Borca
 
The Rails Engine That Could - In Motion
Andy Maleh
 
UQ21CA642BA1-Unit-3-WAF-Class18-Introduction to Angular Routing.pptx
TamalDey28
 

More from Loren Davie (11)

PDF
Blue Shift Marketing Plan
Loren Davie
 
PDF
Client management workshop for tech
Loren Davie
 
PDF
CAVE Language Presentation for AI Camp
Loren Davie
 
PDF
Conversational Architecture: World IA Day 2016 NYC
Loren Davie
 
PDF
Conversational Architecture, CAVE Language, Data Stewardship
Loren Davie
 
PPT
Axilent Tool Talk from Breaking Development 2012
Loren Davie
 
PDF
Django Multi-DB in Anger
Loren Davie
 
PDF
Django Intro
Loren Davie
 
PDF
Django Environment
Loren Davie
 
PDF
Newforms Admin 101
Loren Davie
 
PDF
Model Inheritance
Loren Davie
 
Blue Shift Marketing Plan
Loren Davie
 
Client management workshop for tech
Loren Davie
 
CAVE Language Presentation for AI Camp
Loren Davie
 
Conversational Architecture: World IA Day 2016 NYC
Loren Davie
 
Conversational Architecture, CAVE Language, Data Stewardship
Loren Davie
 
Axilent Tool Talk from Breaking Development 2012
Loren Davie
 
Django Multi-DB in Anger
Loren Davie
 
Django Intro
Loren Davie
 
Django Environment
Loren Davie
 
Newforms Admin 101
Loren Davie
 
Model Inheritance
Loren Davie
 

Recently uploaded (20)

PDF
Doc9.....................................
SofiaCollazos
 
PDF
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
PDF
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
PPTX
The Future of AI & Machine Learning.pptx
pritsen4700
 
PDF
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
PDF
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
PPTX
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
PDF
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
PPTX
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
PDF
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
PDF
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PDF
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
PPTX
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
PDF
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
PDF
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
PPTX
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
PDF
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
Doc9.....................................
SofiaCollazos
 
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
The Future of AI & Machine Learning.pptx
pritsen4700
 
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 

App Engine

  • 2. Python Development on Google Infrastructure - Allows deployment of web applications on Google’s famously robust infrastructure. - Google is a big Python shop - Python is the only language initially supported on AppEngine - (“Wordle” Google AppEngine application).
  • 3. • Data Store • Images • Mail • Memcache • URL Fetch • Users App Engine APIs - Data Store API offers persistent storage in a RDBMS-like environment - Image API offers uploadable images and transformations such as resize, rotate, crop, flip, and the mysterious “I’m feeling lucky” transformation. - Mail API offers email services. - Memcache API offers use of the same memory caching technology used in production Django deployments. - URL Fetch offers HTTP client services, allowing HTTP access to other web services. - Users API offers integration with Google Accounts.
  • 4. App Engine Basics - We’re going to look briefly at creating “Hello World” as an AppEngine app.
  • 5. Dev Environment - First you need to download the development environment. - Nice graphical tools available for Windows and OS X - Command line tools otherwise available
  • 6. Dev Environment - On OS X, the app launcher shows the apps you have available, providing tools to run them locally and deploy them to Google.
  • 7. Dev Environment dev_appserver.py appcfg.py - Ultimately this is icing over the command line tools that do the work: dev_appserver.py is the development web server. appcfg.py is the tool for uploading your app to Google.
  • 8. - First you need to create an application at appengine.google.com. - Currently you are limited to 3 applications, and you must live on the namespace .appspot.com.
  • 9. Vanilla App - From there you can generate a new app. A basic AppEngine app contains three files at minimum: 1. “app.yaml” is a YAML file that identifies basic information about the application, and maps URL patterns to “handlers”. 2. “index.yaml” is a YAML file that is used in conjunction with queries to the Data Store service. 4. “main.py” is the starter “handler” code. It is referenced in “app.yaml”.
  • 10. app.yaml - specifies meta-data about the application - name - version - specifies “handlers”, somewhat similar to how Apache maps url patterns to handlers. - handlers are python files.
  • 11. handler: main.py - handler classes subclass RequestHandler - handler is registered by sending the handler class and the context path to a WSGIApplication. - the WSGIApplication is passed to the wsgiref.handlers module (part of standard Python WSGI). (WSGI, the Web Server Gateway Interface, is the standard for Python web applications. It is Django’s goal for 1.0 to be 100% WSGI compliant.) - The Handler implements methods corresponding to HTTP methods. These methods are called when an HTTP request comes in that matches the context path set in the WSGIApplication.
  • 12. Development Commands • dev_appserver.py django-nyc • appcfg.py update django-nyc - dev_appserver.py runs the development server for that app, analagous to manage.py runserver - appcfg.py will upload the latest version of the application to Google - you must have created the app on the AppEngine console before doing this
  • 14. The Django Helper project - Google has a project that allows people to adapt Django projects to Google AppEngine - Allows for a higher level of abstraction than the vanilla AppEngine apps provide.
  • 15. appengine_django - google-app-engine-django provides a new app for you to copy into your project: appengine_django. You need to add it to your INSTALLED_APPS.
  • 16. app.yaml - app.yaml is mostly the same. - note that /static is routed to a static directory, and not to the python handler
  • 17. main.py - main.py is supplied by appengine_django. It uses a built in handler to act as the RequestHandler - delegating to the Django framework. - from here the request path becomes standard Django: the settings.py file specifies the main urls.py file, which in turn delegate to other urls.py files, or maps requests to views.
  • 18. Data Modeling - Google doesn’t use a relational database system in the traditional sense. - The appengine_django app provides an alternate ORM to the application than the standard Django ORM.
  • 19. - The familiar Poll app, redone in AppEngine. - Note that the *Property objects are analogous to Field classes in the Django ORM
  • 20. There is no spoon syncdb.
  • 21. There’s also no admin console. W TF?
  • 22. http://localhost:8080/_ah/admin - There is, however, a different kind of development admin console that allows browsing of data...
  • 24. Django versions • 0.96 supported out of the box • Later versions (trunk) can be supported by adding Django itself as a module in the application.