Neste artigo, irei demonstrar como utilizar o Azure SQL Database com o Python.
Artigo original pode ser lido aqui
Vamos fazer uma conexão e fazer uma consulta no banco de dados, e mostraremos em uma tabela em uma página Web, para isso utilizaremos o Flask, Microframework do Python para web.
Se ainda não estiver familiarizados com essas ferramentas, leia o meu primeiro artigo da série:
Dentro do Portal do Azure, clique em adicionar um novo recurso.
A seguir, escolha no menu a opção Databases e em seguida clique em SQL Database. Ou procure na aba de busca por SQL Database.
Vamos agora criar o servidor de Banco de Dados, por enquanto ainda não criamos o Banco de dados.
Se você já tiver um servidor configurado, pode escolher diretamente.
Se não, siga os passos da figura, escolhendo um nome para o seu Server, exemplo: pythonflaskconazuresql
No meu caso, nomeie como sqlpythonflask
Informe o admin login e a senha do server
Detalhe: Guarde bem essas informações para conectar posteriormente
Nosso Server criado, vamos dar uma nome para o nosso database, no meu caso, escolhi pythonflasksql
O Database será o local onde estarão nossas tabelas, procedures e etc.
Dentro do recurso, ao clicar em Overview, escolha a opção de Configurar o Firewall do seu servidor
Essa etapa é importante para você se conectar no Banco de Dados e fazer testes locais.
Clique na opção de adicionar o IP do cliente, dessa maneira ele adiciona uma regra para que o seu IP consiga se conectar no Banco de Dados
Obs: Isso serve apenas para conexão local ou de fora do Azure, se sua aplicação estiver hospedada no Azure, essa etapa não é necessária.
Obs 2 NÃO RECOMENDADO: Para facilitar, você pode abrir todos os IPs para conexão, para isso vá em Rule Name e digite all, no campo Start IP digite 0.0.0.0 e no campo End IP digite 255.255.255.255, dessa maneira você habilita entrada no seu Database de todos os IPs. Lembrando que isso deve ser apenas temporário.
Feito isso, podemos acessar nosso Database de um Client como o Management Studio.
Server Name utilize o cadastrado, no meu caso sqlpythonflask, caso não lembre, no Portal do Azure, dentro da aba Overview, você encontrará no nome do Servidor conforme figura abaixo.
Login e Senha que foi definido anteriormente.
Pelo Management Studio, criamos uma tabela para fins de estudo conforme script abaixo.
Copie e cole no Management Studio
Nosso Banco de dados esta pronto.
CREATE TABLE dbo.cadastro
(
chave_pk int NOT NULL IDENTITY(1,1) PRIMARY KEY,
nome varchar(500) NOT NULL,
sobrenome varchar(500) NOT NULL,
email varchar(500) NOT NULL
)
INSERT INTO [dbo].[cadastro]
([nome]
,[sobrenome]
,[email])
VALUES
('João'
,'Silveira'
,'joasilveira@email.com')
GO
INSERT INTO [dbo].[cadastro]
([nome]
,[sobrenome]
,[email])
VALUES
('Maria'
,'Oliveira'
,'mariaoliveira@email.com')
Agora vamos para à parte do Python
A biblioteca do Python para se conectar, tanto no SQL SERVER, quanto no Azure SQL é a pyodbc
vamos utilizar o comando a seguir para instalar no ambiente:
pip install pyodbc
Lembrando que devemos ter o Flask instalado também, veja no meu primeiro artigo, cujo o link esta a cima.
Precisamos nos certificar também se o Driver de conexão esta instalado. Para usuários de Windows, o Driver ODBC for SQL Server já vem nativo. Para usuários Linux, é necessário configurar o Driver, confira no link abaixo como fazer:
Instalado o pyodbc e o Flask, copie e cole o código abaixo em seu editor ou IDE de preferência, no caso, eu uso o Visual Studio Code
from flask import Flask, jsonify
import pyodbc
import json
app = Flask(__name__)
@app.route('/',methods=['GET'])
def table():
server = 'sqlpythonflask.database.windows.net'
database = 'pythonflasksql'
username = 'luigi'
password = '<SUA SENHA>'
cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)
cursor = cnxn.cursor()
cursor.execute("SELECT [nome] ,[sobrenome],[email] FROM [dbo].[cadastro]")
row = cursor.fetchone()
html = '<table border="1" style="width:50%"><tr><th>Nome</th><th>Sobrenome</th><th>Email</th></tr>'
while row:
html += '<tr><td>'+row.nome+'</td><td>'+row.sobrenome+'</td><td>'+row.email+'</td></tr>'
row = cursor.fetchone()
html += '</table>'
return html
if __name__ == '__main__':
app.run(debug=True)
Vamos analisar o código:
Na linha 2, importamos a biblioteca pyodbc.
Na linhas 6 e 7, criamos nossa rota que o Flask irá utilizar na navegação.
Das linhas 8 a 11, informamos as propriedades do Banco de dados, nome do Server, o Database, login e senha, como fizemos anteriormente no Management Studio.
Na linha 12, abrimos a conexão com o banco de dados, passando os parâmetros da nossa conexão.
Na linha 15, executamos uma query, no caso, um SELECT simples.
Da linha 17 a 21, montamos o código HTML que será renderizado pelo Flask. Essa não é a melhor maneira de montar o HTML, será abordada posteriormente o Jinja, biblioteca própria para isso.
Na linha 22, retorno meu HTML que será renderizado pelo Flask e enviado ao navegador.
Iniciado nossa aplicação
Navegamos no localhost, onde a consulta no banco de dados foi feita e nossa tabela foi montada.
Obrigado por ler o artigo, espero que gostem.
Faça parte de comunidades técnicas, é muito importante para sua carreira, conheça as comunidade que sou líder.
DevelopersBR: https://www.meetup.com/pt-BR/DevelopersBR/
Azure Talks: https://www.meetup.com/pt-BR/azure-talks/
Se inscreva no canal do YouTube também: youtube.com/developersbr
Me sigam nas redes sociais.
Linkedin: https://www.linkedin.com/in/luigitavolaro/
GitHub: https://github.com/LuigiTavolaro
Twitter: https://twitter.com/LuigiTavolaro
Valeu e Obrigado