Contents. Chapter 1: Google App Engine...1 What Is Google App Engine?...1 Google App Engine and Cloud Computing...2

Similar documents
Developing Solutions for Google Cloud Platform (CPD200) Course Agenda

Developing with Google App Engine

Seminar report Google App Engine Submitted in partial fulfillment of the requirement for the award of degree Of CSE

Google GCP-Solution Architects Exam

Optimizing Your App Engine App

Google App Engine: Java Technology In The Cloud

DOWNLOAD OR READ : GOOGLE APP ENGINE JAVA AND GWT APPLICATION DEVELOPMENT PDF EBOOK EPUB MOBI


Google Plugin for Eclipse

Building Scalable Web Apps with Python and Google Cloud Platform. Dan Sanderson, April 2015

Developing Microsoft Azure Solutions (70-532) Syllabus

Deccansoft Software Services

Scaling App Engine Applications. Justin Haugh, Guido van Rossum May 10, 2011

IBM Bluemix platform as a service (PaaS)

Developing Microsoft Azure Solutions (70-532) Syllabus

Cloud Computing Platform as a Service

Developing Microsoft Azure Solutions (70-532) Syllabus

DEVELOPING MICROSOFT SHAREPOINT SERVER 2013 ADVANCED SOLUTIONS. Course: 20489A; Duration: 5 Days; Instructor-led

Learn Well Technocraft

Microsoft. Inside Microsoft. SharePoint Ted Pattison. Andrew Connell. Scot Hillier. David Mann

Edge Foundational Training

Developing Microsoft SharePoint Server 2013 Core Solutions

Course 20488A: Developing Microsoft SharePoint Server 2013 Core Solutions

COURSE 20488B: DEVELOPING MICROSOFT SHAREPOINT SERVER 2013 CORE SOLUTIONS

: 20488B: Customized Developing Microsoft SharePoint Server

Google Cloud Platform for Systems Operations Professionals (CPO200) Course Agenda

Large-Scale Web Applications

Developing Microsoft SharePoint Server 2013 Advanced Solutions

Developing Enterprise Cloud Solutions with Azure

Developing Microsoft SharePoint Server 2013 Core Solutions

Course Outline: MS20488 Developing Microsoft SharePoint Server 2013 Core Solutions

Developing Microsoft SharePoint Server 2013 Core Solutions

Build Native-like Experiences in HTML5

Getting the most out of Spring and App Engine!!

10267A CS: Developing Web Applications Using Microsoft Visual Studio 2010

MS 20488: Developing Microsoft SharePoint Server 2013 Core Solutions Duration: 5 Days Method: Instructor-Led

SharePoint 20488: Developing Microsoft SharePoint Server 2013 Core Solutions. Upcoming Dates. Course Description. Course Outline

Western Michigan University

Scaling DreamFactory

COURSE OUTLINE MOC 20488: DEVELOPING MICROSOFT SHAREPOINT SERVER 2013 CORE SOLUTIONS

What s New in Gerrit 2.14 Gerrit User Summit London 2017

20486-Developing ASP.NET MVC 4 Web Applications

Cloud Computing. Chapter 3 Platform as a Service (PaaS)

Avanan for G Suite. Technical Overview. Copyright 2017 Avanan. All rights reserved.

Rekall. Rekall Agent - OSDFCon Forensics. We will remember it for you wholesale! Michael Cohen

Developing ASP.NET MVC 4 Web Applications

Course 20486B: Developing ASP.NET MVC 4 Web Applications

nacelle Documentation

J2EE Development. Course Detail: Audience. Duration. Course Abstract. Course Objectives. Course Topics. Class Format.

Course Outline: Course 50466A: Windows Azure Solutions with Microsoft Visual Studio 2010

Course 20488: Developing Microsoft SharePoint Server 2013 Core Solutions

Developing Microsoft SharePoint Server 2013 Core Solutions Course Contact Hours

PaaS Cloud mit Java. Eberhard Wolff, Principal Technologist, SpringSource A division of VMware VMware Inc. All rights reserved

Embedded type method, overriding, Error handling, Full-fledged web framework, 208 Function defer, 31 panic, 32 recover, 32 33

ASP.NET MVC Training

JBPM Course Content. Module-1 JBPM overview, Drools overview

vrealize Automation Management Pack 2.0 Guide

App Engine: Datastore Introduction

"Charting the Course... MOC B Developing Microsoft SharePoint Server 2013 Core Solutions. Course Summary

To Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservices on CloudFoundry. Tony Erwin,

Pro XAML with C# From Design to Deployment on WPF, Windows Store, and Windows Phone. Buddy James. Lori Lalonde

Alfresco Developer Guide

Developing Microsoft SharePoint Server 2013 Core Solutions

COURSE 20486B: DEVELOPING ASP.NET MVC 4 WEB APPLICATIONS

Microsoft SharePoint Server

IBM WebSphere Application Server V4.0. Performance. 10/02/01 Copyright 2001 IBM Corporation WS40ST11.prz Page 248 of of 28

Enhancing cloud applications by using messaging services IBM Corporation

20486: Developing ASP.NET MVC 4 Web Applications (5 Days)

20486: Developing ASP.NET MVC 4 Web Applications

itexamdump 최고이자최신인 IT 인증시험덤프 일년무료업데이트서비스제공

Building a Django Twilio Programmable Chat Application

Magento Survey Extension User Guide

Application Container Cloud

Developing Microsoft Azure Solutions: Course Agenda

Course Outline. Lesson 2, Azure Portals, describes the two current portals that are available for managing Azure subscriptions and services.

Vb Net Tutorial For Beginners Visual Studio 2010 Express Windows Service Template

Developing ASP.NET MVC 4 Web Applications

Cloud Computing. Technologies and Types

Google App Engine HOWTO

SOCIAL LOGIN FOR MAGENTO 2 USER GUIDE

Microsoft Developing Microsoft SharePoint Server 2013 Core Solutions

Index LICENSED PRODUCT NOT FOR RESALE

Cloud-Native Applications. Copyright 2017 Pivotal Software, Inc. All rights Reserved. Version 1.0

Developing Microsoft Azure Solutions (MS 20532)

Modern SharePoint and Office 365 Development

COURSE OUTLINE: OD10267A Introduction to Web Development with Microsoft Visual Studio 2010

At Course Completion Prepares you as per certification requirements for AWS Developer Associate.

Active Endpoints. ActiveVOS Platform Architecture Active Endpoints

Creating a Custom TinyWebDB service

MOBILE CLOUD SERVICE. Build Your Mobile Strategy Not Just Your Mobile Apps

SHAREPOINT 2013 DEVELOPMENT

DevNet Technical Breakout: Introduction to ACI Programming and APIs.

Developing Applications with Java EE 6 on WebLogic Server 12c

X-S Framework Leveraging XML on Servlet Technology

DEVELOING MICROSOFT SHAREPOINT SERVER 2013 CORE SOLUTIONS

20488B: Developing Microsoft SharePoint Server 2013 Core Solutions

AWS Lambda. 1.1 What is AWS Lambda?

10267 Introduction to Web Development with Microsoft Visual Studio 2010

Microsoft Microsoft SharePoint 2010 Application Development

DE Introduction to Web Development with Microsoft Visual Studio 2010

Transcription:

Contents Chapter 1: Google App Engine...1 What Is Google App Engine?...1 Google App Engine and Cloud Computing...2 End User Applications on the Cloud... 2 Services on the Cloud... 2 Google App Engine and the Cloud... 3 Before You Start Using App Engine...3 Setting Up Your Development Environment...4 Hello, World!...6 Summary...8 Chapter 2: Exploring the SDK...11 Creating Your First Complete Project...11 The webapp Framework... 14 Using the Sandboxed Python Runtime...15 Putting the Application Together...17 Using Templates vs. Inline HTML... 20 Deciding How Many Event Handlers...20 Debugging the Application...21 Debugging Options for the Development Web Server... 22 Debugging a WSGIApplication... 22 Implementing a Debugging Aid... 23 Developing with Google App Engine i

Interactive Debugging... 27 Publishing to the Web...27 Creating and Registering an Application... 28 Uploading an Application... 29 Running an Application from a Custom Domain... 30 Summary...32 Chapter 3: The Design of a Google App Engine Application...33 The BookmarksBin Application...33 The Data Model...33 Wait, No User Table?... 35 Web Application Architecture...35 Pages-to-Components Mapping... 38 Summary...39 Chapter 4: Building an Application...41 Working with the webapp Framework...41 Working With Other Frameworks...43 Laying Out Applications with webapp Templates...44 Exploring the Template Hierarchy... 45 Assembling the Templates and Handlers... 46 Using Static Files...51 Displaying a Favicon... 53 Beautifying Your User Interface with CSS... 55 Downloading the Source Files for the Examples... 56 Summary...56 ii Developing with Google App Engine

Chapter 5: What About the Users?...57 Authentication and Google Accounts...58 Using GData Services... 59 User Objects...60 What About Specific Domains?... 61 Getting a Valid User Object and the Users API... 62 Other Users API Functions... 65 User Objects in the Datastore...65 Configuring Admin Users...68 Defining Admin Users... 68 Validating Admin Users in the Code... 69 Summary...72 Chapter 6: Using the Datastore...73 Bigtable and the Datastore...73 The Datastore API...75 Entities and Unique Identifiers... 75 Disallowed Property Names... 78 Entity Groups and Transactions... 79 Implementing Persistence for the BookmarksBin Application...79 Persisting and Querying an Entity... 80 Deciding Which Calls to the Datastore Are Necessary... 87 Associating and Manipulating Entities...87 One-to-Many Relationships... 88 Choosing Between Query and GqlQuery... 92 The Google Query Language...93 Specifying Conditional Clauses... 94 Developing with Google App Engine iii

Indexing Entities in the Datastore...95 Automatic Indexing and Queries... 96 Defining Indexes Manually... 97 Indexes That Are Not Created by App Engine... 99 Restrictions on Queries... 99 Committing Data in Transactions...100 Reasons for Using Transactions... 101 Using the Transaction API... 102 Many-to-Many Relationships... 103 Storing and Deleting Entities... 105 Summary...109 Chapter 7: Memcache and Session Data... 111 What Is Memcache?...111 Using Memcache for Session Data...114 Caching the Session Owner... 114 Implementing Memcache Calls with Entities... 116 Defining Unique Key Names... 117 Using Memcache Services Throughout an Application...118 Caching Data from Complex Queries... 119 Invalidating the Cache... 121 Other Memcache Functions... 121 Summary...121 Chapter 8: Mail, URL Fetching, and Image Manipulation... 123 Sending E-mail...123 Configuring dev_appserver.py... 123 Configuring the App Engine to Send Mail... 125 Sending E-mail From an Application... 125 Using E-mail Templates... 128 iv Developing with Google App Engine

Using the Fetch URL API...132 Calling a Web Service... 134 Fetching a Resource from Another Site... 136 Manipulating Images...138 Required for Development: The Python Imaging Library (PIL)... 138 Using the Images API... 140 Summary...144 Chapter 9: Managing the Application... 145 Managing Applications...145 Accessing the Application Management Console... 145 Restrictions on Creating an Application... 146 Changing the Application Configuration... 148 Using the Application Administration Logs... 148 The Dashboard...149 The Runtime Logs...150 Offline Log Analysis... 151 Logs and Application Quotas... 152 Viewing Active Indexes...153 Viewing and Manipulating Datastore Objects...154 Using the Development Console... 155 Summary...156 Related Titles... 157 Copyright... 159 Developing with Google App Engine v

Developing with Google App Engine by Eugene Ciurana Large scale, high availability application development was a dark art until the release of Google App Engine. It involved balancing (and sometimes pitting) the programmers skills against the application requirements and the underlying infrastructure. Google App Engine frees us, the developers, from most concerns about the infrastructure so that we can focus on coding and delivering useful software. It empowers us to develop complex applications with a simple and elegant API, using robust programming tools like Python, and leveraging the sophisticated data storage, searching and caching technologies that helped Google to succeed. This is cloud computing made easy and it enables us to create high availability Software as a Service without excessive overhead or infrastructure worries. This book is about how to design, build, deploy, and manage Google App Engine applications efficiently. This work would not have been possible without the support from Apress, the Google App Engine team, and the members of various IRC groups. My special thanks go to Richard Ables, Richard L. Burton III, Guillermo Castro, Charles Kolya Colt, Johan Edstrom, Jason Essington, Aaron Gallagher, Bennett Hiles, Nick Heudecker, Devin Jeanpierre, Shane Jonson, Heather Lang, Justin Lee, Joe Littlefeatherstein, Andrew Lombardi, Marzia Niccolai, Joseph Ottinger, Jeffrey Pepper, Pranav Prakash, Sverre Rabbelier, Tracy Snell, Craig Tataryn, Nestor Toro, Jason Whaley, and Grace Wong. Thanks to the denizens of the #appengine and #python IRC channels from Freenode.net, who always replied to my endless Python-specific questions without losing their patience. Developing with Google App Engine está dedicado a Cary Macías con mucho cariño. Gracias Jefa! vi Developing with Google App Engine