Google Planilhas Avançado - #83 Lendo dados via API com Python
06/06/2021Nesta aula vamos criar a planilha do Google que atuará como banco de dados e faremos a leitura dos dados da planilha através do Python.
Python e Google Planilhas
Criando a Planilha
O primeiro passo é criar uma planilha no Google Drive. � fundamental que essa planilha seja compartilhada de maneira pública e de forma que qualquer um possa editar, afinal nosso sistema que vai acessar a planilha não é uma pessoa que tem um gmail, logo não se pode solicitar credenciais de um sistema. Como essa planilha vai funcionar como banco de dados é importante também que a url dessa planilha seja guardada em sigilo.
Instalando pacote gspread do Python
O pacote gspread facilita muito a manipulação do Google Planilhas pelo Python. Para acessar a documentação basta clicar aqui.
Vamos instalá-lo:
pip install gspread
Credenciais do Google
Para utilizar as planilhas Google através de uma API é necessário ativar a Google Drive API e Google Sheets API e criar credenciais
de acesso. Para isso, vamos acessar o site do Google Developers Console
e solicitar as credenciais para uso.
Coloque o nome das credenciais como service_account.json
Abrindo e lendo dados da planilha
Vamos abrir nosso projeto no Django e vamos iniciar a programação para operações dentro da planilha Google.
app/views.py
Vamos importar o módulo gspread e iniciar a leitura dos dados:
from django.shortcuts import render
from django.http import HttpResponse
import gspread
gc = gspread.service_account(filename='service_account.json')
sh = gc.open_by_key('1dhOiew2_v6cqhqhQ0wse4mVE6dlDIeSNM80oZYvdNeE')
# Create your views here.
def home(request):
worksheet = sh.worksheet("Página1")
return HttpResponse(worksheet.acell('B2').value)
Após finalizar o código, vamos inicializar o servidor no terminal de comandos:
python manage.py runserver
Para verificar se os dados da planilha foram lidos basta acessar no navegador: http://localhost:8000
Por hoje é só! Sucesso nos códigos e na vida!
Aulas particulares? webdesignemfoco@gmail.com