Os aplicativos do Django executados no ambiente padrão do App Engine são escalonados dinamicamente de acordo com o tráfego.
Neste tutorial, presume-se que você esteja familiarizado com o desenvolvimento de Web com o Django. Se você é novo no desenvolvimento do Django, é recomendável escrever seu primeiro aplicativo Django antes de continuar. Nesse tutorial, os modelos do app representam pesquisas que contêm perguntas, e é possível interagir com os modelos usando o console de administração do Django.
Este tutorial requer o Python 3.7.
Antes de começar
-
Faça login na sua conta do Google.
Se você ainda não tiver uma, inscreva-se.
-
No Console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
-
Verifique se o faturamento está ativado para seu projeto na nuvem. Saiba como confirmar se o faturamento está ativado para o projeto.
- Ative a Cloud SQL Admin API.
- Instale e inicialize o SDK do Cloud..
Fazer login no gcloud
Consiga novas credenciais para usar a API Cloud SQL Admin:
gcloud auth application-default login
Fazer o download e executar o app
Depois de concluir os pré-requisitos, faça o download e implante o app de amostra do Django. As seções a seguir contêm as etapas de configuração, execução e implantação do aplicativo.
Como clonar o app do Django
O código para o aplicativo de amostra Django está no repositório
GoogleCloudPlatform/python-docs-samples
no GitHub.
É possível fazer o download da amostra como um arquivo ZIP e extraí-lo ou clonar o repositório na máquina local:
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
Acesse o diretório que contém o código de amostra:
Linux/MacOS
cd python-docs-samples/appengine/standard_python3/django
Windows
cd python-docs-samples\appengine\standard_python3\django
Como configurar o ambiente local
Quando implantado, seu aplicativo usa o Cloud SQL Proxy incorporado ao ambiente do App Engine para se comunicar com sua instância do Cloud SQL. No entanto, para testar o aplicativo no local, é necessário instalar e usar uma cópia local do proxy no ambiente de desenvolvimento.
Saiba mais sobre o Cloud SQL Proxy.
Para executar tarefas administrativas básicas na sua instância do Cloud SQL, use o cliente PostgreSQL.
Como instalar o Cloud SQL Proxy
Faça o download do Cloud SQL Proxy e instale-o. Ele se conectará à sua instância do Cloud SQL durante a execução local.
Linux de 64 bits
- Faça o download do proxy:
wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
- Torne o proxy executável:
chmod +x cloud_sql_proxy
Linux de 32 bits
- Faça o download do proxy:
wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.386 -O cloud_sql_proxy
- Torne o proxy executável:
chmod +x cloud_sql_proxy
macOS de 64 bits
- Faça o download do proxy:
curl -o cloud_sql_proxy https://dl.google.com/cloudsql/cloud_sql_proxy.darwin.amd64
- Torne o proxy executável:
chmod +x cloud_sql_proxy
macOS de 32 bits
- Faça o download do proxy:
curl -o cloud_sql_proxy https://dl.google.com/cloudsql/cloud_sql_proxy.darwin.386
- Torne o proxy executável:
chmod +x cloud_sql_proxy
Windows de 64 bits
Para fazer o download do proxy, clique com o botão direito em https://dl.google.com/cloudsql/cloud_sql_proxy_x64.exe e selecione Salvar link como. Renomeie o arquivo paracloud_sql_proxy.exe
.
Windows de 32 bits
Para fazer o download do proxy, clique com o botão direito em https://dl.google.com/cloudsql/cloud_sql_proxy_x86.exe e selecione Salvar link como. Renomeie o arquivo paracloud_sql_proxy.exe
.
Imagem de proxy do Docker
Por conveniência, a equipe do Cloud SQL mantém várias imagens de contêiner que contêm o Cloud SQL Proxy para uso dos nossos clientes. Para mais informações sobre essas imagens, consulte o repositório do Cloud SQL Proxy no GitHub. É possível extrair a imagem mais recente para sua máquina local usando o Docker com o seguinte comando:docker pull gcr.io/cloudsql-docker/gce-proxy:1.19.1
Outros sistemas operacionais
Para outros sistemas operacionais não incluídos aqui, compile o proxy a partir da fonte.criar uma instância do Cloud SQL;
- <a{: class="internal" l10n-attrs-original-order="href,track-type,track-name,track-metadata-position,track-metadata-end-goal,class,target" l10n-encrypted-href="swy1Ju7ZCFYcdSM5eWXif6UZVxTWFRvKZQskpFkH9Tzmsov9Tn44Y7Li5Oo7JOUB" target="_blank" track-metadata-end-goal="createInstance" track-metadata-position="body" track-name="internalLink" track-type="python" }="">
Crie uma instância do Cloud SQL para o MySQL de segunda geração.
Atribua o nome
</a{:>polls-instance
ou outro similar à instância. Pode levar alguns minutos para a instância ficar pronta. Quando isso acontecer, ela estará visível na lista de instâncias. - Use o SDK do Cloud para executar o comando a seguir, em que
[YOUR_INSTANCE_NAME]
representa o nome da instância do Cloud SQL:gcloud sql instances describe [YOUR_INSTANCE_NAME]
Na saída, observe o valor mostrado para
[CONNECTION_NAME]
.O valor
[CONNECTION_NAME]
está no formato[PROJECT_NAME]:[REGION_NAME]:[INSTANCE_NAME]
.
Como inicializar a instância do Cloud SQL
- Inicie o Cloud SQL Proxy usando o valor
[CONNECTION_NAME]
da etapa anterior:Linux/macOS
./cloud_sql_proxy -instances="[YOUR_INSTANCE_CONNECTION_NAME]"=tcp:3306
Windows
cloud_sql_proxy.exe -instances="[YOUR_INSTANCE_CONNECTION_NAME]"=tcp:3306
Substitua
[YOUR_INSTANCE_CONNECTION_NAME]
pelo valor de[CONNECTION_NAME]
registrado na etapa anterior.Essa etapa estabelece uma conexão do computador local com a instância do Cloud SQL para testes locais. Mantenha o Cloud SQL Proxy em execução durante todo o teste local do aplicativo.
- Crie um usuário e um banco de dados do Cloud SQL:
Cloud Console
-
Crie um novo banco de dados usando o Cloud Console para a instância
polls-instance
do Cloud SQL. Por exemplo, use o nomepolls
. -
Crie um
novo usuário com o Console do Cloud
para a instância do Cloud SQL
polls-instance
.
MySQL client
-
Em uma guia separada da linha de comando, use o cliente MySQL ou um programa semelhante para se conectar à instância. Quando solicitado, use a senha raiz configurada.
mysql --host 127.0.0.1 --user root --password
-
Crie os bancos de dados, usuários e permissões de acesso necessários no banco de dados do Cloud SQL usando os comandos a seguir. Substitua
[MYSQL_USER]
e[MYSQL_PASSWORD]
pelo nome de usuário e senha que você quer usar.CREATE DATABASE polls; CREATE USER '[MYSQL_USER]' IDENTIFIED BY '[MYSQL_PASSWORD]'; GRANT ALL ON . TO '[MYSQL_USER]';
-
Crie um novo banco de dados usando o Cloud Console para a instância
Como definir as configurações do banco de dados
Abra
mysite/settings.py
para edição.Para ajudar a configurar a conexão com o banco de dados para implantação e teste local do App Engine, defina
<your-database-user>
e<your-database-password>
como o nome de usuário e a senha criados anteriormente na etapa Como criar uma instância do Cloud SQLVeja os valores da sua instância:
gcloud sql instances describe [YOUR_INSTANCE_NAME]
Na saída, copie o valor
connectionName
para usar na próxima etapa.Defina
<your-cloudsql-connection-string>
comoconnectionName
da etapa anterior.Configure
[YOUR-DATABASE]
com o nome que você escolheu durante a etapa Inicializar sua instância do Cloud SQL.
Feche e salve
settings.py
.
Como executar o app no computador local
Para executar o app do Django no seu computador local, configure um ambiente de desenvolvimento do Python, incluindo Python,
pip
evirtualenv
.Crie um ambiente Python isolado e instale as dependências:
Linux/MacOS
virtualenv env source env/bin/activate pip install -r requirements.txt
Windows
virtualenv env env\scripts\activate pip install -r requirements.txt
Execute as migrações do Django para definir seus modelos:
python manage.py makemigrations python manage.py makemigrations polls python manage.py migrate
Inicie um servidor da Web local:
python manage.py runserver
No navegador, acesse http://localhost:3000/.
http://localhost:8000
A página exibe o seguinte texto: "Não há pesquisas disponíveis". O servidor da Web do Django em execução no seu computador exibe as páginas do aplicativo de amostra.
Pressione
Control+C
para interromper o servidor da Web local.
Como usar o console de administração do Django
Crie um superusuário. Você precisa definir um nome de usuário e uma senha.
python manage.py createsuperuser
Inicie um servidor da Web local:
python manage.py runserver
No navegador, acesse http://localhost:8000/admin.
http://localhost:8000/admin
Faça login no site de administração usando o nome de usuário e a senha que você usou ao executar
createsuperuser
.
Como implantar o app no ambiente padrão do App Engine
Reúna todo o conteúdo estático em uma pasta movendo todos os arquivos estáticos do aplicativo para a pasta especificada por
STATIC_ROOT
emsettings.py
:python manage.py collectstatic
Faça o upload do aplicativo executando o seguinte comando no diretório
python-docs-samples/appengine/standard_python3/django
do aplicativo em que o arquivoapp.yaml
está localizado:gcloud app deploy
Aguarde a notificação sobre a conclusão da atualização.
Como ver o aplicativo executado no Google Cloud
O comando a seguir implanta o aplicativo conforme descrito em app.yaml
e define a
versão recém-implantada como padrão. Com isso, ela veicula todo o tráfego
novo.
No navegador, digite o seguinte URL:
https://PROJECT_ID.REGION_ID.r.appspot.com
Substitua:
PROJECT_ID
: é o ID do projeto do Google Cloud.REGION_ID
: um código que o App Engine atribui ao seu app
Sua solicitação é atendida por um servidor da Web em execução no ambiente padrão do App Engine.
Se você atualizar o app, implante a versão atualizada inserindo o mesmo comando usado para implantá-lo. A implantação cria uma nova versão do app e a define como padrão. As versões anteriores do seu app são mantidas. Todas essas versões do app são recursos faturáveis. Para reduzir custos, exclua as versões não padrão do seu app.
Para informações sobre a exclusão de versões não padrão do seu app, consulte Como limpar o ambiente.
Produção
Quando você estiver pronto para veicular seu conteúdo na produção, em mysite/settings.py
,
altere a variável DEBUG
para False
.
Noções básicas sobre o código
O app de exemplo do Django foi criado com ferramentas padrão do Django.
Os comandos a seguir criam o projeto e o aplicativo de pesquisa:
django-admin startproject mysite python manage.py startapp polls
O arquivo
settings.py
contém a configuração do banco de dados SQL. O código emsettings.py
usa a variável de ambienteGAE_APPLICATION
para determinar se o aplicativo está sendo executado no App Engine ou no seu computador local:- Quando o aplicativo é executado no App Engine, ele se conecta ao host do MySQL
usando o soquete Unix
/cloudsql
. - Se é executado no seu computador local, ele se conecta ao host do MySQL usando TCP, o que requer um nome de usuário e uma senha.
- Quando o aplicativo é executado no App Engine, ele se conecta ao host do MySQL
usando o soquete Unix
O arquivo
app.yaml
contém informações de configuração para implantação no App Engine. Este arquivoapp.yaml
especifica que o App Engine exibe arquivos estáticos do diretóriostatic/
: