Boa tarde a todos, no video “Desenvolvimento Web com Flask e Python (#4) - Banco de Dados (ORM)”, o banco de dados criado é o SQLite, mas eu queria criar pelo MS SQL Sever, eu trabalhei poucas vezes com todo esse processo e é requisito no meu tcc ser com o MS SQL Sever, entao nao sei como conectar ele com o phyton, eu ate pesquisei e achei que tinha que instalar o pyodbc mas nao funciona comigo, nao da erro nem nada
no meu database.py eu coloquei esse codigo para conectar, mas sem sucesso
import pyodbc
dados_conexao = (
"Driver={SQL Server};"
"Server=DESKTOP-TMSAO1D;"
"Database=teste1;"
)
conexao = pyodbc.connect(dados_conexao)
print("conexao ok")
cursor = conexao.cursor()
comando = """INSERT INTO cliente (cliente_id, cliente_nome, cliente_email)
VALUES ('2', 'isa','isa@lotus.com')"""
cursor.execute(comando)
cursor.commit()
Solução
Como nao mostrava nenhum erro e nem o terminal executava eu decidi mexer no banco adicionando e mudando algumas coisas pra testar o mesmo, ai eu rodei novamente e FUNCIONOU, vou deixar a solucao de comunicaçao aqui e tambem uma inserçao no banco
import pyodbc
# String de conexão corrigida
dados_conexao = (
"DRIVER={ODBC Driver 17 for SQL Server};" # Verifique se esse driver está instalado
"SERVER=DESKTOP-TMSAO1D;" # Nome do seu servidor
"DATABASE=teste1;" # Nome do seu banco de dados
"Trusted_Connection=yes;" # Usa a autenticação integrada do Windows (opcional, pode ser ajustado)
)
# Tenta abrir a conexão
try:
conexao = pyodbc.connect(dados_conexao)
print("Conexão OK!")
except pyodbc.Error as e:
print("Erro ao conectar ao banco de dados:", e)
# Criando o cursor
cursor = conexao.cursor()
# Inserção corrigida, sem aspas para valores numéricos
comando = """
INSERT INTO cliente (cliente_id, cliente_nome, cliente_email)
VALUES (2, 'Isa', 'isa@lotus.com')
"""
# Executando a inserção
try:
cursor.execute(comando)
cursor.commit() # Confirmando a transação
print("Dados inseridos com sucesso!")
except pyodbc.Error as e:
print("Erro ao executar o comando:", e)
# Fechar a conexão
finally:
conexao.close()