Nos últimos anos, a tecnologia tem avançado rapidamente, impulsionando a criação de aplicativos web mais complexos e sofisticados. Uma das plataformas populares para o desenvolvimento de aplicativos web é o Google App Engine (GAE). Neste artigo, exploraremos a demonstração de um aplicativo GAE CRUD (Create, Read, Update, Delete) de duas camadas usando Python 2.7. Além disso, abordaremos tópicos como autenticação e a resolução de problemas comuns durante o desenvolvimento.
O Google App Engine é uma plataforma em nuvem que permite aos desenvolvedores criar e implantar aplicativos facilmente. Com suporte para várias linguagens de programação, incluindo Python, o GAE fornece uma estrutura flexível para desenvolver aplicativos web escaláveis e de alto desempenho.
Um aplicativo CRUD de duas camadas é uma arquitetura comum para desenvolver aplicativos web. A primeira camada é responsável pela lógica de negócios, enquanto a segunda camada lida com o armazenamento e a recuperação de dados. Vamos começar criando a estrutura básica do nosso aplicativo.
Para iniciar, é necessário ter o SDK do Google Cloud instalado em sua máquina. Com o SDK instalado, você pode criar um novo projeto do GAE usando o comando gcloud app create no terminal. Certifique-se de fornecer um ID de projeto exclusivo para o seu aplicativo.
Após a criação do projeto, crie um novo diretório para o seu aplicativo e inicie um ambiente virtual Python. Em seguida, você precisará instalar o pacote google-cloud-ndb, que é uma biblioteca do Google Cloud que fornece acesso ao Datastore do GAE.
Agora, vamos criar o arquivo principal do nosso aplicativo, denominado main.py. Este arquivo conterá o código principal do aplicativo e manipulará as solicitações HTTP. Importe os módulos necessários e defina a classe MainHandler para lidar com as solicitações.
python
Copy code
import webapp2
class MainHandler(webapp2.RequestHandler):
def get(self):
# Exiba a página inicial do aplicativo
self.response.write(‘Bem-vindo ao meu aplicativo CRUD!’)
app = webapp2.WSGIApplication([
(‘/’, MainHandler),
], debug=True)
No código acima, estamos importando o módulo webapp2, que é uma estrutura leve e simples para criar aplicativos web no GAE. Definimos a classe MainHandler para lidar com solicitações GET e exibir uma página inicial básica.
Agora, vamos adicionar as rotas para lidar com as operações CRUD. Vamos supor que estamos desenvolvendo um aplicativo de gerenciamento de tarefas simples. Adicione o seguinte código ao arquivo main.py:
python
Copy code
from google.cloud import ndb
class Task(ndb.Model):
title = ndb.StringProperty()
description = ndb.TextProperty()
class TaskHandler(webapp2.RequestHandler):
def get(self):
tasks = Task.query().fetch()
self.response.write(‘<h1>Lista de tarefas:</h1>’)
for task in tasks:
self.response.write(f'<p>{task.title}: {task.description}</p>’)
def post(self):
title = self.request.get(‘title’)
description = self.request.get(‘description’)
task = Task(title=title, description=description)
task.put()
self.redirect(‘/’)
def delete(self, task_id):
task = Task.get_by_id(int(task_id))
if task:
task.key.delete()
self.redirect(‘/’)
app = webapp2.WSGIApplication([
(‘/’, MainHandler),
(‘/tasks’, TaskHandler),
(r’/tasks/(\d+)’, TaskHandler),
], debug=True)
No código acima, importamos o módulo ndb do google.cloud para interagir com o Datastore. Definimos a classe Task como um modelo de dados que representa uma tarefa com os campos title (título) e description (descrição). Em seguida, criamos a classe TaskHandler, que lida com as solicitações relacionadas às tarefas.
Na função get(), consultamos todas as tarefas no Datastore e exibimos uma lista na página inicial. Na função post(), capturamos os dados enviados por um formulário HTML e criamos uma nova tarefa no Datastore. Na função delete(), recebemos um parâmetro task_id para excluir uma tarefa específica com base em seu ID.
Agora, você pode implantar seu aplicativo no GAE usando o comando gcloud app deploy. Certifique-se de executar o comando dentro do diretório do seu projeto. Após a implantação, você receberá uma URL para acessar seu aplicativo.
Em relação à autenticação, o GAE oferece suporte a vários métodos de autenticação, como autenticação de usuário do Google, OAuth e contas de serviço. Para proteger as rotas do seu aplicativo, você pode usar os mecanismos de autenticação fornecidos pelo GAE, dependendo dos requisitos do seu aplicativo.
Neste artigo, exploramos uma demonstração de um aplicativo GAE CRUD de duas camadas usando Python 2.7. Criamos uma estrutura básica, definimos modelos de dados e implementamos as operações CRUD. Além disso, abordamos a autenticação e a implantação do aplicativo.
O Google App Engine é uma plataforma poderosa para desenvolver aplicativos web escaláveis e robustos. Com o conhecimento adquirido neste artigo, você pode explorar ainda mais os recursos do GAE e criar aplicativos web personalizados e interativos.