SlideShare a Scribd company logo
1 of 25
Download to read offline
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

What's hot

Intro To Django
Intro To DjangoIntro To Django
Intro To DjangoUdi Bauman
 
Starters with Django
Starters with Django Starters with Django
Starters with Django BeDjango
 
10x10 HTML5 Script Tag
10x10 HTML5 Script Tag10x10 HTML5 Script Tag
10x10 HTML5 Script TagMichelle
 
Design Patterns for Smart Applications
Design Patterns for Smart ApplicationsDesign Patterns for Smart Applications
Design Patterns for Smart ApplicationsSri Ambati
 
OutSystems Tricks & Tips for Complex UI Integrations
OutSystems Tricks & Tips for Complex UI IntegrationsOutSystems Tricks & Tips for Complex UI Integrations
OutSystems Tricks & Tips for Complex UI IntegrationsOutSystems
 
Skimlinks & Everyfeed for Drupal
Skimlinks & Everyfeed for DrupalSkimlinks & Everyfeed for Drupal
Skimlinks & Everyfeed for Drupalbuddaboy
 
GDG Atlanta - Angular.js Demo and Workshop
GDG Atlanta - Angular.js Demo and WorkshopGDG Atlanta - Angular.js Demo and Workshop
GDG Atlanta - Angular.js Demo and WorkshopDrew Morris
 
Angular.js for beginners
Angular.js for beginners Angular.js for beginners
Angular.js for beginners Basia Madej
 
Building a local web application with Flask
Building a local web application with FlaskBuilding a local web application with Flask
Building a local web application with FlaskHoffman Lab
 
BDD for RIAs with JavaScript - Skills Matter
BDD for RIAs with JavaScript - Skills MatterBDD for RIAs with JavaScript - Skills Matter
BDD for RIAs with JavaScript - Skills MatterCarlos Ble
 
Django talk
Django talkDjango talk
Django talkpsibi
 
A Dynamic Analysis Framework for Front-end JavaScript
A Dynamic Analysis Framework for Front-end JavaScriptA Dynamic Analysis Framework for Front-end JavaScript
A Dynamic Analysis Framework for Front-end JavaScriptLiang Gong
 
Using WordPress for Rapid Prototyping
Using WordPress for Rapid PrototypingUsing WordPress for Rapid Prototyping
Using WordPress for Rapid PrototypingDrew Morris
 
AngularJS Basics - Knowledge Sharing
AngularJS Basics - Knowledge SharingAngularJS Basics - Knowledge Sharing
AngularJS Basics - Knowledge SharingBranko Djurkovic
 

What's hot (20)

Introduction to django
Introduction to djangoIntroduction to django
Introduction to django
 
Intro To Django
Intro To DjangoIntro To Django
Intro To Django
 
Starters with Django
Starters with Django Starters with Django
Starters with Django
 
10x10 HTML5 Script Tag
10x10 HTML5 Script Tag10x10 HTML5 Script Tag
10x10 HTML5 Script Tag
 
Django
DjangoDjango
Django
 
Web Analytics
Web AnalyticsWeb Analytics
Web Analytics
 
Design Patterns for Smart Applications
Design Patterns for Smart ApplicationsDesign Patterns for Smart Applications
Design Patterns for Smart Applications
 
Tango with django
Tango with djangoTango with django
Tango with django
 
OutSystems Tricks & Tips for Complex UI Integrations
OutSystems Tricks & Tips for Complex UI IntegrationsOutSystems Tricks & Tips for Complex UI Integrations
OutSystems Tricks & Tips for Complex UI Integrations
 
Skimlinks & Everyfeed for Drupal
Skimlinks & Everyfeed for DrupalSkimlinks & Everyfeed for Drupal
Skimlinks & Everyfeed for Drupal
 
GDG Atlanta - Angular.js Demo and Workshop
GDG Atlanta - Angular.js Demo and WorkshopGDG Atlanta - Angular.js Demo and Workshop
GDG Atlanta - Angular.js Demo and Workshop
 
Angular.js for beginners
Angular.js for beginners Angular.js for beginners
Angular.js for beginners
 
Building a local web application with Flask
Building a local web application with FlaskBuilding a local web application with Flask
Building a local web application with Flask
 
BDD for RIAs with JavaScript - Skills Matter
BDD for RIAs with JavaScript - Skills MatterBDD for RIAs with JavaScript - Skills Matter
BDD for RIAs with JavaScript - Skills Matter
 
AngularJS workshop for beginners.
AngularJS workshop for beginners.AngularJS workshop for beginners.
AngularJS workshop for beginners.
 
Django talk
Django talkDjango talk
Django talk
 
A Dynamic Analysis Framework for Front-end JavaScript
A Dynamic Analysis Framework for Front-end JavaScriptA Dynamic Analysis Framework for Front-end JavaScript
A Dynamic Analysis Framework for Front-end JavaScript
 
Using WordPress for Rapid Prototyping
Using WordPress for Rapid PrototypingUsing WordPress for Rapid Prototyping
Using WordPress for Rapid Prototyping
 
AngularJS Basics - Knowledge Sharing
AngularJS Basics - Knowledge SharingAngularJS Basics - Knowledge Sharing
AngularJS Basics - Knowledge Sharing
 
Micro frontend
Micro frontendMicro frontend
Micro frontend
 

Viewers also liked

App Engine On Air: Munich
App Engine On Air: MunichApp Engine On Air: Munich
App Engine On Air: Munichdion
 
Gae icc fall2011
Gae icc fall2011Gae icc fall2011
Gae icc fall2011Juan Gomez
 
Google app-engine-with-python
Google app-engine-with-pythonGoogle app-engine-with-python
Google app-engine-with-pythonDeepak Garg
 
Introduccion app engine con python
Introduccion app engine con pythonIntroduccion app engine con python
Introduccion app engine con pythonsserrano44
 
App Engine for Python Developers
App Engine for Python DevelopersApp Engine for Python Developers
App Engine for Python DevelopersGareth Rushgrove
 
Google app engine python
Google app engine   pythonGoogle app engine   python
Google app engine pythonEueung Mulyana
 
Using Google App Engine Python
Using Google App Engine PythonUsing Google App Engine Python
Using Google App Engine PythonAkshay Mathur
 
Introduction to Google App Engine with Python
Introduction to Google App Engine with PythonIntroduction to Google App Engine with Python
Introduction to Google App Engine with PythonBrian Lyttle
 
Google App Engine for Python - Unit01: Basic
Google App Engine for Python - Unit01: BasicGoogle App Engine for Python - Unit01: Basic
Google App Engine for Python - Unit01: BasicWei-Tsung Su
 
Soft-Shake 2016 : Jigsaw est prêt à tuer le classpath
Soft-Shake 2016 : Jigsaw  est prêt à tuer le classpathSoft-Shake 2016 : Jigsaw  est prêt à tuer le classpath
Soft-Shake 2016 : Jigsaw est prêt à tuer le classpathAlexis Hassler
 
Google datastore & search api
Google datastore & search apiGoogle datastore & search api
Google datastore & search apiGeoffrey Garnotel
 
Google Cloud Platform. Google App Engine
Google Cloud Platform. Google App Engine Google Cloud Platform. Google App Engine
Google Cloud Platform. Google App Engine Kwaye Kant
 

Viewers also liked (13)

App Engine On Air: Munich
App Engine On Air: MunichApp Engine On Air: Munich
App Engine On Air: Munich
 
Gae icc fall2011
Gae icc fall2011Gae icc fall2011
Gae icc fall2011
 
Google app-engine-with-python
Google app-engine-with-pythonGoogle app-engine-with-python
Google app-engine-with-python
 
Introduccion app engine con python
Introduccion app engine con pythonIntroduccion app engine con python
Introduccion app engine con python
 
App Engine for Python Developers
App Engine for Python DevelopersApp Engine for Python Developers
App Engine for Python Developers
 
Google app engine python
Google app engine   pythonGoogle app engine   python
Google app engine python
 
Using Google App Engine Python
Using Google App Engine PythonUsing Google App Engine Python
Using Google App Engine Python
 
Introduction to Google App Engine with Python
Introduction to Google App Engine with PythonIntroduction to Google App Engine with Python
Introduction to Google App Engine with Python
 
Google App Engine for Python - Unit01: Basic
Google App Engine for Python - Unit01: BasicGoogle App Engine for Python - Unit01: Basic
Google App Engine for Python - Unit01: Basic
 
Soft-Shake 2016 : Jigsaw est prêt à tuer le classpath
Soft-Shake 2016 : Jigsaw  est prêt à tuer le classpathSoft-Shake 2016 : Jigsaw  est prêt à tuer le classpath
Soft-Shake 2016 : Jigsaw est prêt à tuer le classpath
 
Google datastore & search api
Google datastore & search apiGoogle datastore & search api
Google datastore & search api
 
Google Cloud Platform. Google App Engine
Google Cloud Platform. Google App Engine Google Cloud Platform. Google App Engine
Google Cloud Platform. Google App Engine
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
 

Similar to App Engine

Pluggable patterns
Pluggable patternsPluggable patterns
Pluggable patternsCorey Oordt
 
Company Visitor Management System Report.docx
Company Visitor Management System Report.docxCompany Visitor Management System Report.docx
Company Visitor Management System Report.docxfantabulous2024
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for JavaLars Vogel
 
Google App Engine - Overview #1
Google App Engine - Overview #1Google App Engine - Overview #1
Google App Engine - Overview #1Kay Kim
 
File Repository on GAE
File Repository on GAEFile Repository on GAE
File Repository on GAElynneblue
 
Appear IQ - Tutorials Backbone.js
Appear IQ - Tutorials Backbone.jsAppear IQ - Tutorials Backbone.js
Appear IQ - Tutorials Backbone.jsAppear
 
Google app engine
Google app engineGoogle app engine
Google app engineRenjith318
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for JavaLars Vogel
 
Introduction to Google App Engine - Naga Rohit S [ IIT Guwahati ] - Google De...
Introduction to Google App Engine - Naga Rohit S [ IIT Guwahati ] - Google De...Introduction to Google App Engine - Naga Rohit S [ IIT Guwahati ] - Google De...
Introduction to Google App Engine - Naga Rohit S [ IIT Guwahati ] - Google De...Naga Rohit
 
Angular kickstart slideshare
Angular kickstart   slideshareAngular kickstart   slideshare
Angular kickstart slideshareSaleemMalik52
 
ANGULAR JS LAB MANUAL(final) vtu2021 sch
ANGULAR JS LAB MANUAL(final) vtu2021 schANGULAR JS LAB MANUAL(final) vtu2021 sch
ANGULAR JS LAB MANUAL(final) vtu2021 schkannikadg
 
Infinite Scale - Introduction to Google App Engine
Infinite Scale - Introduction to Google App EngineInfinite Scale - Introduction to Google App Engine
Infinite Scale - Introduction to Google App EngineMarian Borca
 
The Rails Engine That Could - In Motion
The Rails Engine That Could - In MotionThe Rails Engine That Could - In Motion
The Rails Engine That Could - In MotionAndy Maleh
 
Angular Project Report
 Angular Project Report Angular Project Report
Angular Project ReportKodexhub
 
Rapid Prototyping with TurboGears2
Rapid Prototyping with TurboGears2Rapid Prototyping with TurboGears2
Rapid Prototyping with TurboGears2Alessandro Molina
 

Similar to App Engine (20)

Django by rj
Django by rjDjango by rj
Django by rj
 
django
djangodjango
django
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
 
Pluggable patterns
Pluggable patternsPluggable patterns
Pluggable patterns
 
Company Visitor Management System Report.docx
Company Visitor Management System Report.docxCompany Visitor Management System Report.docx
Company Visitor Management System Report.docx
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
 
Google App Engine - Overview #1
Google App Engine - Overview #1Google App Engine - Overview #1
Google App Engine - Overview #1
 
App engine install-windows
App engine install-windowsApp engine install-windows
App engine install-windows
 
File Repository on GAE
File Repository on GAEFile Repository on GAE
File Repository on GAE
 
Appear IQ - Tutorials Backbone.js
Appear IQ - Tutorials Backbone.jsAppear IQ - Tutorials Backbone.js
Appear IQ - Tutorials Backbone.js
 
Google app engine
Google app engineGoogle app engine
Google app engine
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
 
Introduction to Google App Engine - Naga Rohit S [ IIT Guwahati ] - Google De...
Introduction to Google App Engine - Naga Rohit S [ IIT Guwahati ] - Google De...Introduction to Google App Engine - Naga Rohit S [ IIT Guwahati ] - Google De...
Introduction to Google App Engine - Naga Rohit S [ IIT Guwahati ] - Google De...
 
Angular kickstart slideshare
Angular kickstart   slideshareAngular kickstart   slideshare
Angular kickstart slideshare
 
ANGULAR JS LAB MANUAL(final) vtu2021 sch
ANGULAR JS LAB MANUAL(final) vtu2021 schANGULAR JS LAB MANUAL(final) vtu2021 sch
ANGULAR JS LAB MANUAL(final) vtu2021 sch
 
How Does Angular Work?
How Does Angular Work?How Does Angular Work?
How Does Angular Work?
 
Infinite Scale - Introduction to Google App Engine
Infinite Scale - Introduction to Google App EngineInfinite Scale - Introduction to Google App Engine
Infinite Scale - Introduction to Google App Engine
 
The Rails Engine That Could - In Motion
The Rails Engine That Could - In MotionThe Rails Engine That Could - In Motion
The Rails Engine That Could - In Motion
 
Angular Project Report
 Angular Project Report Angular Project Report
Angular Project Report
 
Rapid Prototyping with TurboGears2
Rapid Prototyping with TurboGears2Rapid Prototyping with TurboGears2
Rapid Prototyping with TurboGears2
 

More from Loren Davie

Blue Shift Marketing Plan
Blue Shift Marketing PlanBlue Shift Marketing Plan
Blue Shift Marketing PlanLoren Davie
 
Client management workshop for tech
Client management workshop for techClient management workshop for tech
Client management workshop for techLoren Davie
 
CAVE Language Presentation for AI Camp
CAVE Language Presentation for AI CampCAVE Language Presentation for AI Camp
CAVE Language Presentation for AI CampLoren Davie
 
Conversational Architecture: World IA Day 2016 NYC
Conversational Architecture: World IA Day 2016 NYCConversational Architecture: World IA Day 2016 NYC
Conversational Architecture: World IA Day 2016 NYCLoren Davie
 
Conversational Architecture, CAVE Language, Data Stewardship
Conversational Architecture, CAVE Language, Data StewardshipConversational Architecture, CAVE Language, Data Stewardship
Conversational Architecture, CAVE Language, Data StewardshipLoren Davie
 
Axilent Tool Talk from Breaking Development 2012
Axilent Tool Talk from Breaking Development 2012Axilent Tool Talk from Breaking Development 2012
Axilent Tool Talk from Breaking Development 2012Loren Davie
 
Django Multi-DB in Anger
Django Multi-DB in AngerDjango Multi-DB in Anger
Django Multi-DB in AngerLoren Davie
 
Django Environment
Django EnvironmentDjango Environment
Django EnvironmentLoren Davie
 
Newforms Admin 101
Newforms Admin 101Newforms Admin 101
Newforms Admin 101Loren Davie
 
Model Inheritance
Model InheritanceModel Inheritance
Model InheritanceLoren Davie
 

More from Loren Davie (11)

Blue Shift Marketing Plan
Blue Shift Marketing PlanBlue Shift Marketing Plan
Blue Shift Marketing Plan
 
Client management workshop for tech
Client management workshop for techClient management workshop for tech
Client management workshop for tech
 
CAVE Language Presentation for AI Camp
CAVE Language Presentation for AI CampCAVE Language Presentation for AI Camp
CAVE Language Presentation for AI Camp
 
Conversational Architecture: World IA Day 2016 NYC
Conversational Architecture: World IA Day 2016 NYCConversational Architecture: World IA Day 2016 NYC
Conversational Architecture: World IA Day 2016 NYC
 
Conversational Architecture, CAVE Language, Data Stewardship
Conversational Architecture, CAVE Language, Data StewardshipConversational Architecture, CAVE Language, Data Stewardship
Conversational Architecture, CAVE Language, Data Stewardship
 
Axilent Tool Talk from Breaking Development 2012
Axilent Tool Talk from Breaking Development 2012Axilent Tool Talk from Breaking Development 2012
Axilent Tool Talk from Breaking Development 2012
 
Django Multi-DB in Anger
Django Multi-DB in AngerDjango Multi-DB in Anger
Django Multi-DB in Anger
 
Django Intro
Django IntroDjango Intro
Django Intro
 
Django Environment
Django EnvironmentDjango Environment
Django Environment
 
Newforms Admin 101
Newforms Admin 101Newforms Admin 101
Newforms Admin 101
 
Model Inheritance
Model InheritanceModel Inheritance
Model Inheritance
 

Recently uploaded

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsAndrey Dotsenko
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 

Recently uploaded (20)

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 

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.