Google Cloud Platform

Hello, World! in 5 minutes

This tutorial creates a tiny application that displays a short message.


Download the App Engine SDK for Python

Before getting started, be sure to download the Python SDK for App Engine.

Creating a Simple Request Handler

Create a directory named helloworld. All files for this application reside in this directory.

Inside the helloworld directory, create a file named, and give it the following contents:

This Python script responds to a request with an HTTP header that describes the content and the message Hello, World!.

Note: Ensure that you save the files you create as plain text. You may encounter errors otherwise.

Creating the Configuration File

An App Engine application has a configuration file called app.yaml. Among other things, this file describes which handler scripts should be used for which URLs.

Inside the helloworld directory, create a file named app.yaml with the following contents:

From top to bottom, this configuration file says the following about this application:

  • This is version number 1 of this application's code. If you adjust this before uploading new versions of your application software, App Engine will retain previous versions, and let you roll back to a previous version using the administrative console.
  • This code runs in the python27 runtime environment, API version 1. Additional runtime environments and languages may be supported in the future.
  • This application is threadsafe so the same instance can handle several simultaneous requests. Threadsafe is an advanced feature and may result in erratic behavior if your application is not specifically designed to be threadsafe.
  • Every request to a URL whose path matches the regular expression /.* (all URLs) should be handled by the app object in the helloworld module.

The syntax of this file is YAML. For a complete list of configuration options, see the app.yaml reference.

Testing the Application

With a handler script and configuration file mapping every URL to the handler, the application is complete. You can now test it with the web server included with the App Engine Python SDK.

Start the web server with the following command, giving it the path to the helloworld directory. If you have symlinks created for dev_appserver, you don't need to include the path:

$ helloworld/

The web server is now running, listening for requests on port 8080. You can test the application by visiting the following URL in your web browser:

Iterative Development

You can leave the web server running while you develop your application. The web server knows to watch for changes in your source files and reload them if necessary.

Try it now: Leave the web server running, then edit to change Hello, World! to something else. Reload http://localhost:8080/.

To shut down the web server, make sure the terminal window is active, then press Control-C.

You can leave the web server running for the rest of this tutorial. If you need to stop it, you can restart it again by running the command above.

Uploading the application

  1. Sign in to App Engine using your Google account. If you do not have a Google account, you can create a Google account with an email address and password.
  2. If you haven't already done so, create a project for your App Engine app as follows:

    1. Visit the Google Cloud Platform Console and click Create Project.
    2. Supply the desired project name in the New Project form. It doesn't have to match your app name, but using the same name as your app might make administration easier.
    3. Accept the generated project ID or supply your own ID. This project ID is used as the App Engine application ID. Note that this ID can only be used once: if you subsequently delete your project, you won't be able to re-use the ID in a new project.
  3. Note the application ID (project ID) you created above.

  4. Upload your finished application to Google App Engine by invoking the following command. This opens a browser window for you to sign in using your Google account. You'll be providing the project ID as the argument for -A. -A YOUR_PROJECT_ID update helloworld/
  5. Your app is now deployed and ready for users!


You have completed this tutorial.

The full URL for your application is Optionally, you can instead purchase and use a top-level domain name for your app, or use one that you have already registered.

Expanding on Hello, World!

In the "Creating a Guestbook" tutorial, you expand this simple application to become a fully-fledged Guestbook application that lets authenticated Google accounts post messages to a public page.

Creating a Guestbook >>