A classe manage-sql foi feita de modo a facilitar a gestão e interação com bancos de dados sqlite.
- Criação e gestão de bancos de dados sqlite, mysql e postegres.
- Definição de estruturas de tabelas usando tipos de colunas customizadas.
- Maior performance nas operações CRUD.
- Executar operações sql brutas sem depender da classe
- Método próprio para encriptar valores sensíveis como senhas.
Primeiro garanta que tem o python instalando. Caso não tenha o python, clique aqui
Segundo, instale a biblioteca manage-sql usando o comando abaixo na linha de comandos
pip install manage.sqlPara fazer a gestão dos bancos de dados, ao importar pode fazer o import dependendo do tipo de banco que pretende gerir.
from manage_sql import SQLITE
from manage_sql import MYSQL
from manage_sql import POSTEGRESQLfrom manage_sql import SQLITE
db = SQLITE(
database = 'my_database',
path = 'path_database'
)Parametros
database: str (opcional) - nome do banco de dados sqlitepath: str (opcional) - local onde pretender colocar o banco de dados. Caso não defina, o caminho padrão será o /database
from manage_sql import MYSQL
db = MYSQL(
host = 'localhost',
username = 'mysql_user',
password = 'user_password',
database = 'database_name',
port = 3306
)Parametros
host: str - local onde está a rodar o servidor mysqlusername: str - usuario do banco de dadospassword: str - palavra-passe do usuario mysqldatabase: str (opcional) - nome do banco de dados mysqlport: int (opcional) - a porta padrão do servidor mysql é o 3306
- Conectar usando o postegres_url (dsn)
from manage_sql import POSTEGRESQL
db = POSTEGRESQL(
postegres_url = 'postegres_url',
)- Conectar usando os parametros normais
from manage_sql import POSTEGRESQL
db = POSTEGRESQL(
host = 'localhost',
username = 'postgres_user',
password = 'user_password',
database = 'database_name',
port = 5432
)Parametros
portegres_url: str - caminho para o servidor onde está alocado o banco de dados postegres. Mais detalhes consulte clique aquihost: str - local onde está a rodar o servidor postgresusername: str - usuario do banco de dadospassword: str - palavra-passe do usuario postgresdatabase: str (opcional) - nome do banco de dados postgresport: int (opcional) - a porta padrão do servidor postgres é 5432
Os métodos abaixo aplicam-se para os três bancos de dados (mysql, sqlite, postegresql). A título de exemplo a documentação tomará como base, o banco de dados MYSQL
from manage_sql import MYSQL
db = MYSQL(
host='hostname',
username='username',
password='user_password',
database='database_name'
)
db.create_table(
tablename='usuarios',
columns=[
db.Column(
name='nome',
column_type=db.Column_types.Char(60).varchar
),
db.Column(
name='username',
column_type=db.Column_types.Char(60).varchar
)
]
)Parametros
tablename: str - nome da tabela que pretende criar no banco de dados especificado na conexãocolumns: list[Column] - lista de colunas que pretende criar dentro da tabela.
Nota 1: A documentação devida do Column será feita em breve.
Nota 2: Tenha atenção aos tipos do Column_types, dado que cada tipo de banco de dados possui seus respectivos tipos.
from manage_sql import MYSQL
db = MYSQL(
host='hostname',
username='username',
password='user_password',
database='database_name'
)
db.insert_data(
tablename='usuarios',
insert_query=[
db.ColumnData(
column='nome',
value='Web Tech Moz'
),
db.ColumnData(
column='nome',
value='webtechmoz'
)
]
)Parametros
tablename: str - nome da tabela que pretende inserir os dadosinsert_query: list[ColumnData] - lista de ColumnData abaixo descritosColumnData: ColumnDate - instância para inserir os dados nas colunas da tabela. Recebecolumnque corresponde ao nome da coluna evaluecorrespondente ao valor a inserir
from manage_sql import MYSQL
db = MYSQL(
host='hostname',
username='username',
password='user_password',
database='database_name'
)
db.detele_data(
tablename='usuarios',
condition=db.delete_by(
column='id'
).EQUAL(
value=1
)
)Parametros
tablename: str - nome da tabela que pretende inserir os dadoscondition: Filter (opcional) - método de filtragem que permite selecionar o(s) dado(s) que pretende apagar.
Parametros de Filtragem
O delete_by deve receber uma coluna base para fazer a filtragem dos dados. Este método possui várioss metodos de filtragem abaixo indicados:
EQUAL: recebe um valor em que a coluna especificada deverá ser igual=NOT_EQUAL: recebe um valor em que a coluna especificada deverá ser igual!=GATHER_THAN: recebe um valor minimo para comparação>GATHER_OR_EQUAL: recebe um valor que deverá ser o mínimo incluido para comparação>=LESS_THAN: recebe um valor máximo para comparação<LESS_OR_EQUAL: recebe um valor máximo incluido<=CONTAIN: recebe uma parte de texto para validação de stringsLIKENOT_CONTAIN: recebe uma parte de texto para validação de stringsNOT LIKE
Pode tambem fazer filtragem em multiplas colunas usando as condicionais abaixo:
OReAND
from manage_sql import MYSQL
db = MYSQL(
host='hostname',
username='username',
password='user_password',
database='database_name'
)
# Filtrando usando o OR
db.detele_data(
tablename='usuarios',
condition=db.delete_by(
column='id'
).EQUAL(
value=1
).OR.filterby(
column='username'
).CONTAIN(
value='moz'
)
)
# Filtrando usando o AND
db.detele_data(
tablename='usuarios',
condition=db.delete_by(
column='id'
).EQUAL(
value=1
).AND.filterby(
column='username'
).CONTAIN(
value='moz'
)
)from manage_sql import MYSQL
db = MYSQL(
host='hostname',
username='username',
password='user_password',
database='database_name'
)
dados = db.select_data(
tablename='usuarios',
columns=['id', 'nome', 'username'],
condition=db.filter_by(
column='id'
).GATHER_OR_EQUAL(
value=1
)
)
print(dados)Parametros
tablename: str - nome da tabelacolumns: list[str] (opcional) - lista de nome das colunas que pretende retornar. Caso não especifique, irá retornar todas colunas da tabelacondition: Filter - Para mais detalhes veja parametros de filtragem
from manage_sql import MYSQL
db = MYSQL(
host='hostname',
username='username',
password='user_password',
database='database_name'
)
db.update_data(
tablename='usuarios',
edit_query=db.ColumnData(
column='nome',
value='Alex Zunguze'
),
condition=db.filter_by(
column='id'
).EQUAL(
value=1
)
)Parametros
tablename: str - nome da tabela que pretende inserir os dadosedit_query: list[ColumnData] - lista de ColumnData abaixo descritosColumnData: ColumnDate - instância para inserir os dados nas colunas da tabela. Recebecolumnque corresponde ao nome da coluna evaluecorrespondente ao novo valor a inserircondition: Filter (opcional) - Para mais detalhes veja parametros de filtragem
db = MYSQL(
host='hostname',
username='username',
password='user_password',
database='database_name'
)
db.add_column(
tablename='usuarios',
column=db.Column(
name='idade',
column_type=db.Column_types.Integer.integer
)
)Parametros
tablename: str - nome da tabelacolumn: Column - instância contendo os detalhes na coluna a ser adicionada
Mais Detalhes sobre a Column veja a documentação clicando aqui
from manage_sql import MYSQL
db = MYSQL(
host='hostname',
username='username',
password='user_password',
database='database_name'
)
db.drop_column(
tablename='usuarios',
column_name='idade'
)Parametros
tablename: str - nome da tabelacolumn_name: str - nome da coluna que pretende apagar
from manage_sql import MYSQL
db = MYSQL(
host='hostname',
username='username',
password='user_password',
database='database_name'
)
db.drop_table(
tablename='usuarios'
)Parametros
tablename: str - nome da tabela que pretende apagar
Atenção: Tenha em atenção que se executar este comando perderá todos dados dentro da referida tabela.
Caso queira rodar outras queries SQL que o manage_sql ainda não possua de forma nativa, pode usar o método execute_query conforme vem no exemplo abaixo:
from manage_sql import MYSQL
db = MYSQL(
host='hostname',
username='username',
password='user_password',
database='database_name'
)
columns = db.execute_query(
query='show columns from usuarios'
)
print(columns)O manage_sql possui um metodo proprio para encriptar valores baseado no hash512 que geral 128 caracteres aleatórios. É util para armazenar senhas criptografadas
from manage_sql import MYSQL
db = MYSQL(
host='hostname',
username='username',
password='user_password',
database='database_name'
)
hash_value = db.encrypt_value(
value='Aa12456'
)