-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdb.py
More file actions
81 lines (63 loc) · 2.81 KB
/
Copy pathdb.py
File metadata and controls
81 lines (63 loc) · 2.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, String, Integer
from sqlalchemy.orm import sessionmaker
from sqlalchemy import inspect
# Classe base para definições de classes pro banco de dados
class BancoDeDados:
base = declarative_base()
engine = None
session = None
def __init__(self, database_url,echo=True):
self.engine = create_engine(database_url,echo=echo)
self.base.metadata.create_all(self.engine)
Session = sessionmaker(bind=self.engine)
session = Session()
self.session = session
# Criação de uma tabela Alunos
class Alunos(base):
__tablename__ = 'alunos'
# Definição das colunas da tabela
id = Column(Integer, primary_key = True)
nome = Column(String)
email = Column(String)
ano = Column(Integer)
# Construtor do objeto Alunos
def __init__(self, params):
self.nome = params['nome']
self.email = params['email']
self.ano = params['ano']
def insert(self,Table,params):
tr = Table(params)
self.session.add(tr)
self.session.commit()
def update(self,Table,params):
"""id deve ser um parâmetro."""
self.session.query(Table).filter(Table.id == params['id']).update(params)
self.session.commit()
def delete(self,Table,id):
tr = self.session.query(Table).filter(Table.id == id).first()
if tr != None:
self.session.delete(tr)
self.session.commit()
if __name__ == '__main__':
# Para conectar a um banco de dados utilize o método create_engine com o seguinte padrão URL
# 'dialect+driver://username:password@host:port/database' (Lembrando que Dialetos são os possíveis bancos de daods)
bd = BancoDeDados('sqlite:///teste.sqlite',echo=True)
# Inserindo novos alunos no banco de dados
bd.insert(bd.Alunos,{'nome':'Yuri Dimitri Ramos Costa','email':'yuridrcosta@gmail.com','ano':16})
bd.insert(bd.Alunos,{'nome':'Teste','email':'teste@example.com','ano':5})
bd.insert(bd.Alunos,{'nome':'Teste2','email':'teste2@example.com','ano':5})
bd.insert(bd.Alunos,{'nome':'Joao','email':'joao@example.com','ano':11})
print('Realizando uma busca por alunos que estão no ensino médio')
for a in bd.session.query(bd.Alunos).filter(bd.Alunos.ano > 9):
print(f'[ {a.id} ] {a.nome}\t{a.email}\t{a.ano}')
# Removendo alunos do banco de dados pelo nome
aluno = bd.session.query(bd.Alunos).filter(bd.Alunos.nome == 'Teste').first()
if aluno != None:
bd.session.delete(aluno)
bd.session.commit()
# Removendo alunos pelo id
bd.delete(bd.Alunos,3)
# Atualizando nome
bd.update(bd.Alunos,{'id':11,'nome':'Nome alterado'})