Aula 8 - Email, DBs e OO
smtplib
- Liberar Acesso ao SMTP do Gmail:
- https://myaccount.google.com/lesssecureapps
-
Tela de ativação:

-
Protocolos SMTP:
- Gmail: https://support.google.com/a/answer/176600?hl=pt#zippy=%2Cusar-o-servidor-smtp-do-gmail
- Link alternativo: https://support.google.com/mail/answer/7126229?hl=pt-BR
-
Importar as bibliotecas:
-
Instanciar o email:
-
Criar o corpo do e-mail:
-
Configurar o e-mail que está enviando:
-
Configurar o(s) destinatário(s) do e-mail
-
Configurar o assunto do e-mail:
-
Formatar o corpo do e-mail em formato de texto:
-
Criar conexão SMTP:
-
Se autenticar no servidor SMTP:
-
Enviar e-mail:
-
SEM Anexo
-
COM Anexo
file = open('seu_arquivo.py', 'rb') app = MIMEApplication(file.read(), 'py') app.add_header('Content-Disposition', 'attachment;filename=seu_arquivo.py') mail.attach(app) # UM destinatário server.sendmail(mail['From'], mail['To'], mail.as_string()) # MAIS DE UM destinatário server.sendmail(mail['From'], mail['To'].split(","), mail.as_string())
-
-
Finalizar conexão SMTP:
Ferramentas DB
- MS SQL:
-
Download SQL Server: https://www.microsoft.com/pt-br/sql-server/sql-server-downloads
- Selecionar a edição "Desenvolvedor"/"Developer".
- Link direto: https://go.microsoft.com/fwlink/?linkid=866662
-
SQL Management Studio:
- Página de download: https://docs.microsoft.com/pt-br/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15
- Link direto: https://aka.ms/ssmsfullsetup
- Biblioteca pyodbc:
- Documentação pyodbc: https://github.com/mkleehammer/pyodbc/wiki
- Repositório pyodbc: https://github.com/mkleehammer/pyodbc/
- SQLite:
- Programas pra usar o SQLite:
- SQLite Browser: https://sqlitebrowser.org/dl/
- SQLite Studio: https://sqlitestudio.pl/
- Programa para ler um arquivo ".db" do SQLite:
- SQLite Viewer Online: https://inloop.github.io/sqlite-viewer/
- Site SQLite:
- Documentação sqlite3:
sqlite3
-
Importar biblioteca:
-
Criar conexão:
-
Criar cursor:
-
Criar uma tabela:
-
Aprovar as interações com o banco de dados:
-
Inserir algum dado:
-
Inserir vários registros no banco:
lista_registros = [(88190475789, 'José Hugo Manuel Porto', '11/07/1997', '41989320821', 'jjosehugomanuelporto@patriciagrillo.adv.br', '83309270'), (39962955106, 'Marina Carolina dos Santos', '26/09/1995', '81984235792', 'marinacarolinadossantos_@lukin4.com.br', '53350130'), (20955758572, 'Laura Luana Assis', '13/06/1948', '68991361938', 'lauraluanaassis-91@naressi.com.br', '69911355'), (76938977550, 'Yasmin Evelyn Maria Costa', '20/04/1959', '91998657654', 'yasminevelynmariacosta-88@yahoo.com.ar', '66810020'), (25373027375, 'Fernando Giovanni Bernardes', '02/03/1964', '81989889726', 'fernandogiovannibernardes-92@soulcomunicacao.com.br', '51180440'), (85775491947, 'Clarice Vitória Teixeira', '24/02/1958', '82996438794', 'claricevitoriateixeira-97@india.com', '57052605'), (4847726278, 'Kamilly Clara Caldeira', '21/04/1982', '27998331799', 'kamillyclaracaldeira__kamillyclaracaldeira@caferibeiro.com.br', '29194248'), (90123303354, 'Carolina Cláudia Pietra da Rocha', '14/04/1952', '63992520221', 'carolinaclaudiapietradarocha__carolinaclaudiapietradarocha@riguetti.com.br', '77017297'), (96558670801, 'Levi Theo Matheus Ramos', '04/04/1961', '22988505045', 'levitheomatheusramos..levitheomatheusramos@cordeiromaquinas.com.br', '28024123'), (57218723306, 'Davi Márcio Rafael Nogueira', '25/07/1997', '69991521228', 'davimarciorafaelnogueira..davimarciorafaelnogueira@silnave.com.br', '76964042')] cur.executemany("INSERT INTO TB_Cliente VALUES (?, ?, ?, ?, ?, ?)", lista_registros) con.commit()
-
Apagar algum dado:
-
Atualizar algum dado:
-
Ver um dado na tabela:
-
Ver todos os dados da tabela:
cur.execute('''SELECT * FROM TB_Cliente''') cur.fetchall() # Realizado slice ([:3) no output para apresentar pequenos exemplos # output: [(116415509, 'Analu Julia da Paz', '05/04/1974', '79982386771', 'aanalujuliadapaz@alwan.com.br', '49026130'), (4847726278, 'Kamilly Clara Caldeira', '21/04/1982', '27998331799', 'kamillyclaracaldeira__kamillyclaracaldeira@caferibeiro.com.br', '29194248'), (7287125803, 'Eduarda Emily Almada', '20/04/1941', '32985692709', 'eduardaemilyalmada_@peopleside.com.br', '36200142')]
-
Fechar conexão do banco de dados:
pyodbc
-
Instalar biblioteca:
-
Importar biblioteca:
-
Criar conexão com o banco de dados:
Utilitários DB
- Visualizar bancos de dados:
- DBeaver: https://dbeaver.io/?r=qal-sqle
- Beekeeper Studio: https://www.beekeeperstudio.io/
- SqlDbx: http://www.sqldbx.com/
- Outros Bancos de Dados:
- MySQL: https://www.mysql.com/
- PostgreSQL: https://www.postgresql.org/
- MariaDB: https://mariadb.org/
- MongoDB: https://www.mongodb.com/
- Apache Cassandra: https://cassandra.apache.org/
- Redis: https://redis.io/download
- "Minificar" a Query:
- SQL-Minifier: https://www.webtoolkitonline.com/sql-minifier.html
- Carregar a tabela:
- Necessário criar um arquivo ".db" e renomear dentro do arquivo.py
- Deixar os arquivos ".json", ".db" e ".py" na mesma pasta
- Arquivos:
[Aula8.zip](Aula%208%20-%20Email,%20DBs%20e%20OO%201f458ef924dd473a952375a676f36154/Aula9.zip)
Orientação à Objeto
-
Criar uma classe:
-
Criar variáveis e ações da Classe ao chamá-la:
-
Criar variáveis “privadas” da Classe:
- Usar parênteses;
python self._nome = nome.title()
-
Inserir método de atualização do nome:
-
Inserir método de atualização da idade:
-
Inserir método de atualização da raça:
-
Inserir método que imprime as descrições do cachorro:
-
Inserir método que faz o cachorro sentar:
-
Inserir método que faz o cachorro rolar:
-
Inserir método que faz o cachorro deita:
-
Importar uma Classe (vale destacar que para isso, você precisa estar no diretório em que foi criado o arquivo da classe):
-
Criar um objeto na Classe:
-
Acessar funcionalidades da classe com o objeto criado:
-
Atualizar raça do cachorro contido no objeto: