Python Bookshelf app

The Bookshelf app is a sample web app written in Python that shows how to use various Google Cloud products, including:

  • App Engine flexible environment
  • Cloud SQL
  • Datastore
  • Cloud Storage

This tutorial explores the Bookshelf sample app and discusses how each feature of the app is implemented using technologies and services that Google Cloud provides.

The Bookshelf sample app is based on the Flask web application framework, but the concepts and technologies explored are applicable regardless of which framework you use. You can implement this app in another web app framework of your choice, for example, Django. Throughout the tutorial, the code follows best practices and common patterns for larger Flask apps. Notably, the app uses blueprints and app factories. If you are unfamiliar with these patterns, we recommend reviewing the Flask documentation.

Screenshot of the Bookshelf app showing controls and book covers

The Bookshelf sample app stores a collection of book titles. Anyone with access to the app can modify the list. The sample app lets users:

  • View the list of books.
  • Add books to the list.
  • Remove books from the list.
  • Edit book details.
  • Upload cover images for books.
  • Sign in with a Google Account and view the books that they added to the list.


  • Clone or download the sample app.
  • Build the app and run it on your local machine.
  • Deploy the app to App Engine.
  • Walk through the sample code.
  • Learn how the app stores structured data.
  • Learn how the app stores binary data in Cloud Storage.


This tutorial uses billable components of Google Cloud, including Compute Engine.

This tutorial has several steps, and each step is documented on its own page. The final page of the tutorial includes instructions for cleaning up resources so you won't continue to be billed for Google Cloud services. If you decide not to complete all the steps of the tutorial, see the cleanup instructions on the final page.

Before you begin

  1. To set up your Google Cloud project, use the Cloud Console:
    1. Create a Google Cloud project, create an App Engine app, and then enable billing in that project.
      Go to App Engine

      When prompted, select the region where you want your App Engine app located, and then enable billing. After your Google Cloud project is created, the Dashboard opens.

    2. Enable the Datastore, Cloud Storage JSON and Cloud SQL Admin APIs.

      Enable the APIs

  2. Download, install, and initialize the Cloud SDK.
    Download the Cloud SDK
  3. Acquire local credentials for authenticating with Google Cloud services.
    gcloud auth application-default login
  4. Verify that your default project is correct.
    gcloud config list
    If the project ID listed in the output isn't the project that you intended to use for this tutorial, set the project.
    gcloud config set project [YOUR_PROJECT_ID]
    where [YOUR_PROJECT_ID] is the ID of the project that you created or chose to use for this tutorial.
  5. Clone the sample repository.

    git clone -b steps

    Alternatively, you can download the sample as a zip file and extract it.

This tutorial assumes that you are familiar with Python programming and that you have a Python development environment set up. If you don't have Python installed, see Setting Up a Python Development Environment. Even if you already have Python installed, it's useful to review the setup instructions to ensure that you have the latest Python tools.

Tutorial structure

The Bookshelf tutorial has several parts that demonstrate how the sample app uses various Google Cloud services.

The structured data part of the tutorial demonstrates how the sample app stores book information in a SQL or NoSQL database.

The sample app's web page displays a form where the user enters the title, author, description, and publication date of a book. The app stores this information in a database so it can be retrieved later for viewing or editing. For this step of the tutorial, you have your choice of three databases: Cloud SQL, Datastore, or MongoDB. After you complete this step with one of the databases, you can move on to the next step.

The Cloud Storage part of this tutorial demonstrates how the sample app stores binary data in Cloud Storage. On the app's web page, the user can specify a cover image for each book. The app stores the cover images in a Cloud Storage bucket.

Оцените, насколько информация на этой странице была вам полезна:

Оставить отзыв о...

Текущей странице