Getting Started With Django

It's easy to get started developing Django apps that run on GCP. And because the apps you create run on the same infrastructure that powers all of Google's products, you can be confident that they will scale to serve all of your users, whether there are a few or millions of them.

Hosting platforms

There are four main options for deploying Django on GCP.

Django Deployment Option Use if you want Don't use if you need Get Started
App Engine standard environment
  • Minimal configuration
  • No server maintenance
  • Easy scalability
  • System libraries not available in the App Engine standard Python environment
Django on App Engine standard environment
App Engine flexible Environment
  • Most of the advantages of App Engine
  • System libraries and Python libraries that depend on them
  • Custom Docker runtimes
  • Control over the entire VM (outside of the application's docker container)
Django on App Engine flexible environment
Google Kubernetes Engine
  • Django containers in a microservice environment
  • A toolkit to design your own container-based platform
  • A fully-featured platform as a service. For a container-based PaaS, consider flexible environment.
Django on GKE
Compute Engine
  • Familiar infrastructure as a service using VMs
  • Windows VMs
  • A serverless environment without the need to configure your own infrastructure
Django in Google Cloud Platform Marketplace


The Django object-relational mapper (ORM) works best with a traditional SQL database. If you are starting a new project, Cloud SQL is a good choice. With a few clicks you can create a MySQL or PostgreSQL database that is managed and scaled by Google.

You can also use other SQL databases if you're willing to manage them yourself on Compute Engine or another service.

In some cases, there are compelling reasons to use a NoSQL database, for example, scalability or suitability for your data model. Although using the Django ORM with a NoSQL database can be challenging, it is possible with some limitations. For example, many types of database joins can be expressed in Django, but are not supported by Cloud Datastore and other NoSQL databases like MongoDB.

One possibility is to use a mixed SQL and NoSQL approach that uses different databases for different types of data.

For a managed, massively-scalable NoSQL solution, consider Cloud Datastore, which is a non-relational database that scales better than a SQL solution.

If you choose to use MongoDB, you can deploy it using GCP Marketplace and do your own management, or you can use the managed MongoDB hosting service provided by mLab.

For many years, the most popular approach to making the Django ORM work with NoSQL solutions was Django non-rel, but the project is a fork of Django that has not been kept up to date with the main line. A new project called Djangae has emerged, which provides a Django ORM backend for Cloud Datastore without forking Django. While Djangae looks extremely promising, it is not an officially supported way to run Django on App Engine.


App Engine comes with a built-in Memcached service. To install Memcached on Compute Engine, you can use GCP Marketplace. To install Memcached on either Compute Engine or GKE, use the Memcached Docker image. Similarly, you can install Redis by using GCP Marketplace or the Redis docker image.

Task queuing

App Engine comes with a built-in task queue feature for long-running background jobs. Outside of App Engine, consider the massively scalable Cloud Pub/Sub service, which can be turned into a task queue using Cloud Pub/Sub Task Queue for Python (psq).

Other popular task queuing options, available in GCP Marketplace, include RabbitMQ and Kafka. There are also Docker images for RabbitMQ and Kafka.

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

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

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