manage-sql 0.1.0__tar.gz → 0.2.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {manage_sql-0.1.0 → manage_sql-0.2.2}/LICENCE +1 -1
- {manage_sql-0.1.0 → manage_sql-0.2.2}/PKG-INFO +35 -27
- {manage_sql-0.1.0 → manage_sql-0.2.2}/README.md +29 -24
- {manage_sql-0.1.0 → manage_sql-0.2.2}/manage_sql/SQLITE.py +163 -12
- manage_sql-0.2.2/manage_sql/__init__.py +2 -0
- manage_sql-0.2.2/manage_sql/test_SQLITE.py +96 -0
- {manage_sql-0.1.0 → manage_sql-0.2.2}/manage_sql.egg-info/PKG-INFO +35 -27
- {manage_sql-0.1.0 → manage_sql-0.2.2}/manage_sql.egg-info/SOURCES.txt +2 -0
- manage_sql-0.2.2/manage_sql.egg-info/requires.txt +3 -0
- {manage_sql-0.1.0 → manage_sql-0.2.2}/setup.py +8 -3
- manage_sql-0.1.0/manage_sql/__init__.py +0 -1
- {manage_sql-0.1.0 → manage_sql-0.2.2}/manage_sql.egg-info/dependency_links.txt +0 -0
- {manage_sql-0.1.0 → manage_sql-0.2.2}/manage_sql.egg-info/top_level.txt +0 -0
- {manage_sql-0.1.0 → manage_sql-0.2.2}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
The MIT Licence (MIT)
|
|
2
2
|
|
|
3
|
-
Copyright 2024 Web Tech
|
|
3
|
+
Copyright 2024 Web Tech Moz
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
6
6
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: manage-sql
|
|
3
|
-
Version: 0.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 0.2.2
|
|
4
|
+
Summary: Biblioteca Python para gestão de bases de dados SQLite com maior eficiência
|
|
5
5
|
Home-page: https://github.com/webtechmoz/manage-sql
|
|
6
|
-
Author: Web Tech
|
|
6
|
+
Author: Web Tech Moz
|
|
7
7
|
Author-email: zoidycine@gmail.com
|
|
8
8
|
License: MIT
|
|
9
9
|
Keywords: manage-sql,sqlite,sqlite manager
|
|
@@ -13,28 +13,35 @@ Classifier: Operating System :: OS Independent
|
|
|
13
13
|
Requires-Python: >=3.6
|
|
14
14
|
Description-Content-Type: text/markdown
|
|
15
15
|
License-File: LICENCE
|
|
16
|
+
Requires-Dist: deprecated
|
|
17
|
+
Requires-Dist: dataclasses
|
|
18
|
+
Requires-Dist: pathlib
|
|
16
19
|
|
|
17
20
|
# SQLITE.py
|
|
18
21
|
|
|
19
22
|
`SQLITE.py` é uma classe Python para interagir com bancos de dados SQLite de forma simplificada. Esta classe fornece métodos para conectar a um banco de dados, criar tabelas, inserir dados e outras operações básicas.
|
|
20
23
|
|
|
21
24
|
## Índice
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
25
|
+
1. [Introdução](#introdução)
|
|
26
|
+
2. [Instalação](#instalação)
|
|
27
|
+
3. [Uso da Classe SQLITE](#uso-da-classe-sqlite)
|
|
28
|
+
1. [Instanciando a Classe](#instanciando-a-classe)
|
|
29
|
+
2. [Métodos Disponíveis](#métodos-disponíveis)
|
|
30
|
+
- [conectarBanco](#conectarbanco)
|
|
31
|
+
- [criarTabela](#criartabela)
|
|
32
|
+
- [inserirDados](#inserirdados)
|
|
33
|
+
- [apagarDados](#apagardados)
|
|
34
|
+
- [editarDados](#editardados)
|
|
35
|
+
- [adicionarColuna](#adicionarcoluna)
|
|
36
|
+
- [apagarColuna](#apagarcoluna)
|
|
37
|
+
- [apagarTabela](#apagartabela)
|
|
38
|
+
- [verDados](#verdados)
|
|
39
|
+
- [encryptPass (descontinuado)](#encryptpass-descontinuado)
|
|
40
|
+
- [encriptarValor](#encriptarvalor)
|
|
41
|
+
- [verDadosPlus (descontinuado)](#verdadosplus-descontinuado)
|
|
42
|
+
|
|
43
|
+
4. [Contibuição](#contribuição)
|
|
44
|
+
5. [Licença](#licença)
|
|
38
45
|
|
|
39
46
|
## Instalação
|
|
40
47
|
|
|
@@ -45,15 +52,16 @@ Não há requisitos especiais de instalação além do Python 3.6+.
|
|
|
45
52
|
Primeiro, importe a classe `SQLITE` e crie uma instância fornecendo o nome do banco de dados:
|
|
46
53
|
|
|
47
54
|
```python
|
|
48
|
-
|
|
55
|
+
# Importando a biblioteca
|
|
56
|
+
from manage-sql import SQLITE
|
|
49
57
|
|
|
50
|
-
#
|
|
58
|
+
# Instanciando a classe SQLITE
|
|
51
59
|
db = SQLITE('meu_banco')
|
|
52
60
|
```
|
|
53
61
|
|
|
54
62
|
## Métodos
|
|
55
63
|
|
|
56
|
-
### __init__
|
|
64
|
+
### __init__
|
|
57
65
|
Inicializa a classe com o nome do banco de dados.
|
|
58
66
|
|
|
59
67
|
#### Parâmetros:
|
|
@@ -64,7 +72,7 @@ nomeBanco (str): Nome do banco de dados a ser utilizado.
|
|
|
64
72
|
db = SQLITE('meu_banco')
|
|
65
73
|
```
|
|
66
74
|
|
|
67
|
-
###
|
|
75
|
+
### Conectar Banco
|
|
68
76
|
Conecta ao banco de dados e cria a pasta database se não existir.
|
|
69
77
|
|
|
70
78
|
#### Retorno:
|
|
@@ -75,7 +83,7 @@ Um objeto de conexão e cursor do banco de dados.
|
|
|
75
83
|
database, cursor = db.conectarBanco()
|
|
76
84
|
```
|
|
77
85
|
|
|
78
|
-
###
|
|
86
|
+
### Criar Tabela
|
|
79
87
|
Cria uma tabela no banco de dados.
|
|
80
88
|
|
|
81
89
|
#### Parâmetros:
|
|
@@ -92,7 +100,7 @@ db.criarTabela(
|
|
|
92
100
|
)
|
|
93
101
|
```
|
|
94
102
|
|
|
95
|
-
###
|
|
103
|
+
### Inserir Dados
|
|
96
104
|
Insere dados na tabela especificada.
|
|
97
105
|
|
|
98
106
|
#### Parâmetros:
|
|
@@ -109,7 +117,7 @@ db.inserirDados(
|
|
|
109
117
|
)
|
|
110
118
|
```
|
|
111
119
|
|
|
112
|
-
###
|
|
120
|
+
### Consultar Dados
|
|
113
121
|
Consulta dados da tabela especificada.
|
|
114
122
|
|
|
115
123
|
#### Parâmetros:
|
|
@@ -124,7 +132,7 @@ resultados = db.consultarDados(
|
|
|
124
132
|
)
|
|
125
133
|
```
|
|
126
134
|
|
|
127
|
-
###
|
|
135
|
+
### Apagar Dados
|
|
128
136
|
Deleta dados da tabela especificada com base em uma condição.
|
|
129
137
|
|
|
130
138
|
#### Parâmetros:
|
|
@@ -3,22 +3,26 @@
|
|
|
3
3
|
`SQLITE.py` é uma classe Python para interagir com bancos de dados SQLite de forma simplificada. Esta classe fornece métodos para conectar a um banco de dados, criar tabelas, inserir dados e outras operações básicas.
|
|
4
4
|
|
|
5
5
|
## Índice
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
6
|
+
1. [Introdução](#introdução)
|
|
7
|
+
2. [Instalação](#instalação)
|
|
8
|
+
3. [Uso da Classe SQLITE](#uso-da-classe-sqlite)
|
|
9
|
+
1. [Instanciando a Classe](#instanciando-a-classe)
|
|
10
|
+
2. [Métodos Disponíveis](#métodos-disponíveis)
|
|
11
|
+
- [conectarBanco](#conectarbanco)
|
|
12
|
+
- [criarTabela](#criartabela)
|
|
13
|
+
- [inserirDados](#inserirdados)
|
|
14
|
+
- [apagarDados](#apagardados)
|
|
15
|
+
- [editarDados](#editardados)
|
|
16
|
+
- [adicionarColuna](#adicionarcoluna)
|
|
17
|
+
- [apagarColuna](#apagarcoluna)
|
|
18
|
+
- [apagarTabela](#apagartabela)
|
|
19
|
+
- [verDados](#verdados)
|
|
20
|
+
- [encryptPass (descontinuado)](#encryptpass-descontinuado)
|
|
21
|
+
- [encriptarValor](#encriptarvalor)
|
|
22
|
+
- [verDadosPlus (descontinuado)](#verdadosplus-descontinuado)
|
|
23
|
+
|
|
24
|
+
4. [Contibuição](#contribuição)
|
|
25
|
+
5. [Licença](#licença)
|
|
22
26
|
|
|
23
27
|
## Instalação
|
|
24
28
|
|
|
@@ -29,15 +33,16 @@ Não há requisitos especiais de instalação além do Python 3.6+.
|
|
|
29
33
|
Primeiro, importe a classe `SQLITE` e crie uma instância fornecendo o nome do banco de dados:
|
|
30
34
|
|
|
31
35
|
```python
|
|
32
|
-
|
|
36
|
+
# Importando a biblioteca
|
|
37
|
+
from manage-sql import SQLITE
|
|
33
38
|
|
|
34
|
-
#
|
|
39
|
+
# Instanciando a classe SQLITE
|
|
35
40
|
db = SQLITE('meu_banco')
|
|
36
41
|
```
|
|
37
42
|
|
|
38
43
|
## Métodos
|
|
39
44
|
|
|
40
|
-
### __init__
|
|
45
|
+
### __init__
|
|
41
46
|
Inicializa a classe com o nome do banco de dados.
|
|
42
47
|
|
|
43
48
|
#### Parâmetros:
|
|
@@ -48,7 +53,7 @@ nomeBanco (str): Nome do banco de dados a ser utilizado.
|
|
|
48
53
|
db = SQLITE('meu_banco')
|
|
49
54
|
```
|
|
50
55
|
|
|
51
|
-
###
|
|
56
|
+
### Conectar Banco
|
|
52
57
|
Conecta ao banco de dados e cria a pasta database se não existir.
|
|
53
58
|
|
|
54
59
|
#### Retorno:
|
|
@@ -59,7 +64,7 @@ Um objeto de conexão e cursor do banco de dados.
|
|
|
59
64
|
database, cursor = db.conectarBanco()
|
|
60
65
|
```
|
|
61
66
|
|
|
62
|
-
###
|
|
67
|
+
### Criar Tabela
|
|
63
68
|
Cria uma tabela no banco de dados.
|
|
64
69
|
|
|
65
70
|
#### Parâmetros:
|
|
@@ -76,7 +81,7 @@ db.criarTabela(
|
|
|
76
81
|
)
|
|
77
82
|
```
|
|
78
83
|
|
|
79
|
-
###
|
|
84
|
+
### Inserir Dados
|
|
80
85
|
Insere dados na tabela especificada.
|
|
81
86
|
|
|
82
87
|
#### Parâmetros:
|
|
@@ -93,7 +98,7 @@ db.inserirDados(
|
|
|
93
98
|
)
|
|
94
99
|
```
|
|
95
100
|
|
|
96
|
-
###
|
|
101
|
+
### Consultar Dados
|
|
97
102
|
Consulta dados da tabela especificada.
|
|
98
103
|
|
|
99
104
|
#### Parâmetros:
|
|
@@ -108,7 +113,7 @@ resultados = db.consultarDados(
|
|
|
108
113
|
)
|
|
109
114
|
```
|
|
110
115
|
|
|
111
|
-
###
|
|
116
|
+
### Apagar Dados
|
|
112
117
|
Deleta dados da tabela especificada com base em uma condição.
|
|
113
118
|
|
|
114
119
|
#### Parâmetros:
|
|
@@ -1,8 +1,44 @@
|
|
|
1
1
|
import sqlite3 as sq
|
|
2
2
|
import hashlib as sh
|
|
3
3
|
from pathlib import Path
|
|
4
|
+
from deprecated import deprecated
|
|
5
|
+
import os
|
|
4
6
|
|
|
5
7
|
class SQLITE:
|
|
8
|
+
'''
|
|
9
|
+
Faça a gestão dos seus bancos de dados com esta classe.
|
|
10
|
+
|
|
11
|
+
Importe a classe e use um dos métodos abaixo:
|
|
12
|
+
```python
|
|
13
|
+
# Importando a classe
|
|
14
|
+
from manage-sql import SQLITE
|
|
15
|
+
|
|
16
|
+
# Instacioando a classe
|
|
17
|
+
db = SQLITE('nome_do_banco')
|
|
18
|
+
|
|
19
|
+
# Usar cada um dos metodos:
|
|
20
|
+
db.criarTabela()
|
|
21
|
+
db.inserirDados()
|
|
22
|
+
db.apagarDados()
|
|
23
|
+
db.editarDados()
|
|
24
|
+
db.adicionarColuna()
|
|
25
|
+
db.apagarColuna()
|
|
26
|
+
db.apagarTabela()
|
|
27
|
+
db.verDados()
|
|
28
|
+
db.encriptarValor()
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Funções descontinuadas
|
|
32
|
+
```python
|
|
33
|
+
# Encriptar valores
|
|
34
|
+
db.encryptPass() # Função antiga
|
|
35
|
+
db.encriptarValor() # Nova função
|
|
36
|
+
|
|
37
|
+
# Consultar dados
|
|
38
|
+
db.verDadosPlus() # Função antiga
|
|
39
|
+
db.verDados() # Função em uso
|
|
40
|
+
```
|
|
41
|
+
'''
|
|
6
42
|
|
|
7
43
|
def __init__(self, nomeBanco: str):
|
|
8
44
|
"""
|
|
@@ -38,7 +74,6 @@ class SQLITE:
|
|
|
38
74
|
return database, cursor
|
|
39
75
|
|
|
40
76
|
def criarTabela(self, nomeTabela: str, Colunas: list, ColunasTipo: list):
|
|
41
|
-
|
|
42
77
|
"""
|
|
43
78
|
Cria uma tabela no banco de dados.
|
|
44
79
|
|
|
@@ -56,7 +91,6 @@ class SQLITE:
|
|
|
56
91
|
)
|
|
57
92
|
```
|
|
58
93
|
"""
|
|
59
|
-
|
|
60
94
|
if type(Colunas) == list and type(ColunasTipo) == list:
|
|
61
95
|
if len(Colunas) == len(ColunasTipo):
|
|
62
96
|
database, cursor = self.conectarBanco()
|
|
@@ -98,7 +132,7 @@ class SQLITE:
|
|
|
98
132
|
if len(Colunas) == len(dados):
|
|
99
133
|
database, cursor = self.conectarBanco()
|
|
100
134
|
|
|
101
|
-
ColunaSQL = ','.join(Colunas)
|
|
135
|
+
ColunaSQL = ', '.join(Colunas)
|
|
102
136
|
|
|
103
137
|
Dados = []
|
|
104
138
|
|
|
@@ -108,9 +142,9 @@ class SQLITE:
|
|
|
108
142
|
else:
|
|
109
143
|
Dados.append(str(dado))
|
|
110
144
|
|
|
111
|
-
|
|
145
|
+
params = ', '.join('?' for _ in Dados)
|
|
112
146
|
|
|
113
|
-
cursor.execute(f'INSERT INTO {nomeTabela} ({ColunaSQL}) VALUES ({
|
|
147
|
+
cursor.execute(f'INSERT INTO {nomeTabela} ({ColunaSQL}) VALUES ({params})', (Dados))
|
|
114
148
|
|
|
115
149
|
database.commit()
|
|
116
150
|
database.close()
|
|
@@ -120,6 +154,24 @@ class SQLITE:
|
|
|
120
154
|
print('Impossível inserir dados: parâmetros devem ser listas.')
|
|
121
155
|
|
|
122
156
|
def apagarDados(self, nomeTabela: str, conditions: str = ''):
|
|
157
|
+
"""
|
|
158
|
+
Apaga registros de uma tabela no banco de dados SQLite.
|
|
159
|
+
|
|
160
|
+
:param nomeTabela: Nome da tabela da qual os dados serão apagados.
|
|
161
|
+
:param conditions: Condição SQL para selecionar os registros a serem apagados. Se vazio, todos os registros serão apagados.
|
|
162
|
+
|
|
163
|
+
Exemplo de uso:
|
|
164
|
+
|
|
165
|
+
```python
|
|
166
|
+
db = SQLITE('meu_banco')
|
|
167
|
+
|
|
168
|
+
# Apaga registros com id = 1
|
|
169
|
+
db.apagarDados("minha_tabela", "id = 1")
|
|
170
|
+
|
|
171
|
+
# Apaga todos os registros da tabela
|
|
172
|
+
db.apagarDados("minha_tabela")
|
|
173
|
+
```
|
|
174
|
+
"""
|
|
123
175
|
database, cursor = self.conectarBanco()
|
|
124
176
|
|
|
125
177
|
if conditions == '':
|
|
@@ -132,21 +184,54 @@ class SQLITE:
|
|
|
132
184
|
database.close()
|
|
133
185
|
|
|
134
186
|
def editarDados(self, nomeTabela: str, Coluna: str, Valor: str, conditions: str = ''):
|
|
187
|
+
"""
|
|
188
|
+
Edita registros em uma tabela no banco de dados SQLite.
|
|
189
|
+
|
|
190
|
+
:param nomeTabela: Nome da tabela a ser editada.
|
|
191
|
+
:param Coluna: Nome da coluna a ser editada.
|
|
192
|
+
:param Valor: Novo valor a ser atribuído à coluna.
|
|
193
|
+
:param conditions: Condição SQL para selecionar os registros a serem editados. Se vazio, todos os registros serão atualizados.
|
|
194
|
+
|
|
195
|
+
Exemplo de uso:
|
|
196
|
+
```python
|
|
197
|
+
db = SQLITE('meu_banco')
|
|
198
|
+
|
|
199
|
+
# Edita registros com id = 1
|
|
200
|
+
db.editarDados("minha_tabela", "nome_coluna", "novo_valor", "id = 1")
|
|
201
|
+
|
|
202
|
+
# Edita todos os registros da tabela
|
|
203
|
+
db.editarDados("minha_tabela", "nome_coluna", "novo_valor")
|
|
204
|
+
```
|
|
205
|
+
"""
|
|
135
206
|
database, cursor = self.conectarBanco()
|
|
136
207
|
|
|
137
208
|
if conditions == '':
|
|
138
|
-
cursor.execute(f"UPDATE {nomeTabela} SET {Coluna} =
|
|
209
|
+
cursor.execute(f"UPDATE {nomeTabela} SET {Coluna} = ?", (Valor,))
|
|
139
210
|
|
|
140
211
|
else:
|
|
141
|
-
cursor.execute(f"UPDATE {nomeTabela} SET {Coluna} =
|
|
212
|
+
cursor.execute(f"UPDATE {nomeTabela} SET {Coluna} = ? WHERE {conditions}", (Valor,))
|
|
142
213
|
|
|
143
214
|
database.commit()
|
|
144
215
|
database.close()
|
|
145
216
|
|
|
146
217
|
def adicionarColuna(self, nomeTabela: str, Coluna: str, ColunaTipo: str):
|
|
218
|
+
"""
|
|
219
|
+
Adiciona uma nova coluna a uma tabela no banco de dados SQLite.
|
|
220
|
+
|
|
221
|
+
:param nomeTabela: Nome da tabela na qual a coluna será adicionada.
|
|
222
|
+
:param Coluna: Nome da nova coluna.
|
|
223
|
+
:param ColunaTipo: Tipo de dados da nova coluna (por exemplo, INTEGER, TEXT).
|
|
224
|
+
|
|
225
|
+
Exemplo de uso:
|
|
226
|
+
```python
|
|
227
|
+
db_manager = DatabaseManager()
|
|
228
|
+
|
|
229
|
+
# Adiciona uma coluna do tipo TEXT
|
|
230
|
+
db_manager.adicionarColuna("minha_tabela", "nova_coluna", "TEXT")```
|
|
231
|
+
"""
|
|
147
232
|
database, cursor = self.conectarBanco()
|
|
148
233
|
|
|
149
|
-
cursor.execute(f'ALTER TABLE {nomeTabela} ADD COLUMN {Coluna} {ColunaTipo
|
|
234
|
+
cursor.execute(f'ALTER TABLE {nomeTabela} ADD COLUMN {Coluna} {ColunaTipo}')
|
|
150
235
|
|
|
151
236
|
database.commit()
|
|
152
237
|
database.close()
|
|
@@ -219,7 +304,8 @@ class SQLITE:
|
|
|
219
304
|
database.close()
|
|
220
305
|
|
|
221
306
|
return dados
|
|
222
|
-
|
|
307
|
+
|
|
308
|
+
@deprecated(reason='Esta função será descontinuada nas versões subsequentes. Considere usar função verDados()')
|
|
223
309
|
def verDadosPlus(self, query: str, params: list):
|
|
224
310
|
"""
|
|
225
311
|
Consulta dados com base em uma query SQL customizada.
|
|
@@ -246,6 +332,7 @@ class SQLITE:
|
|
|
246
332
|
|
|
247
333
|
return dados
|
|
248
334
|
|
|
335
|
+
@deprecated(reason='Esta função vai ser descontinuada nas versões subsequentes. Considere usar a função encriptarValor()')
|
|
249
336
|
def encryptPass(self, value: str):
|
|
250
337
|
"""
|
|
251
338
|
Gera um hash SHA-512 de um valor fornecido.
|
|
@@ -265,6 +352,26 @@ class SQLITE:
|
|
|
265
352
|
value_hashed = hash.hexdigest()
|
|
266
353
|
|
|
267
354
|
return value_hashed
|
|
355
|
+
|
|
356
|
+
def encriptarValor(self, value: str):
|
|
357
|
+
"""
|
|
358
|
+
Gera um hash SHA-512 de um valor fornecido.
|
|
359
|
+
|
|
360
|
+
:param value: Valor a ser criptografada.
|
|
361
|
+
:return: Valor criptografado em SHA-512.
|
|
362
|
+
|
|
363
|
+
Exemplo de uso:
|
|
364
|
+
```python
|
|
365
|
+
db = SQLITE('meu_banco')
|
|
366
|
+
value_hashed = db.encryptValor('valor')
|
|
367
|
+
print(value_hashed)
|
|
368
|
+
```
|
|
369
|
+
"""
|
|
370
|
+
hash = sh.sha512()
|
|
371
|
+
hash.update(value.encode('UTF-8'))
|
|
372
|
+
value_hashed = hash.hexdigest()
|
|
373
|
+
|
|
374
|
+
return value_hashed
|
|
268
375
|
|
|
269
376
|
|
|
270
377
|
if __name__ == '__main__':
|
|
@@ -282,12 +389,56 @@ if __name__ == '__main__':
|
|
|
282
389
|
db.inserirDados(
|
|
283
390
|
nomeTabela='users',
|
|
284
391
|
Colunas=['nome', 'username', 'senha'],
|
|
285
|
-
dados=['Alexandre Zunguze', 'azunguze', db.
|
|
392
|
+
dados=['Alexandre Zunguze', 'azunguze', db.encriptarValor('Aa123')]
|
|
286
393
|
)
|
|
287
|
-
|
|
394
|
+
|
|
395
|
+
# Adicionar coluna
|
|
396
|
+
db.adicionarColuna(
|
|
397
|
+
nomeTabela='users',
|
|
398
|
+
Coluna='ColunaB',
|
|
399
|
+
ColunaTipo='TEXT'
|
|
400
|
+
),
|
|
401
|
+
|
|
402
|
+
# Editar dados
|
|
403
|
+
db.editarDados(
|
|
404
|
+
nomeTabela='users',
|
|
405
|
+
Coluna='ColunaB',
|
|
406
|
+
Valor='Teste'
|
|
407
|
+
)
|
|
408
|
+
|
|
409
|
+
# Ver dados
|
|
410
|
+
dados = db.verDados('users')
|
|
411
|
+
print(dados)
|
|
412
|
+
|
|
413
|
+
# Apagar Coluna
|
|
414
|
+
db.apagarColuna(
|
|
415
|
+
nomeTabela='users',
|
|
416
|
+
Coluna='senha'
|
|
417
|
+
)
|
|
418
|
+
|
|
419
|
+
# Ver dados
|
|
420
|
+
dados = db.verDados('users')
|
|
421
|
+
print(dados)
|
|
422
|
+
|
|
423
|
+
# Inserir dados
|
|
424
|
+
db.inserirDados(
|
|
425
|
+
nomeTabela='users',
|
|
426
|
+
Colunas=['nome', 'username', 'ColunaB'],
|
|
427
|
+
dados=['Alexandre Zunguze', 'azunguze', 'Qualquer coisa']
|
|
428
|
+
)
|
|
429
|
+
|
|
430
|
+
# Apagar dados
|
|
431
|
+
db.apagarDados(
|
|
432
|
+
nomeTabela='users',
|
|
433
|
+
conditions='id = 1'
|
|
434
|
+
)
|
|
435
|
+
|
|
288
436
|
# Ver dados
|
|
289
437
|
dados = db.verDados('users')
|
|
290
438
|
print(dados)
|
|
291
439
|
|
|
292
440
|
# Apagar tabela
|
|
293
|
-
db.apagarTabela('users')
|
|
441
|
+
db.apagarTabela('users')
|
|
442
|
+
|
|
443
|
+
# Apagar o Banco de Dados
|
|
444
|
+
os.remove(rf'{Path.cwd()}\database\users.db')
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import unittest
|
|
2
|
+
from pathlib import Path
|
|
3
|
+
import os
|
|
4
|
+
from dataclasses import is_dataclass
|
|
5
|
+
|
|
6
|
+
try:
|
|
7
|
+
from SQLITE import SQLITE
|
|
8
|
+
|
|
9
|
+
except:
|
|
10
|
+
from manage_sql import SQLITE
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class TestSQLITE(unittest.TestCase):
|
|
14
|
+
|
|
15
|
+
@classmethod
|
|
16
|
+
def setUp(self):
|
|
17
|
+
self.db_name: str = 'db_test'
|
|
18
|
+
self.table_name = 'tabela_test'
|
|
19
|
+
self.columns = ['Col_1', 'Col_2', 'Col_3']
|
|
20
|
+
self.columns_type = ['TEXT', 'TEXT', 'INTEGER']
|
|
21
|
+
self.path: str = rf"{Path.cwd()}\database\{self.db_name}.db"
|
|
22
|
+
self.database: SQLITE = SQLITE(self.db_name)
|
|
23
|
+
self.database.criarTabela(
|
|
24
|
+
nomeTabela=self.table_name,
|
|
25
|
+
Colunas=self.columns,
|
|
26
|
+
ColunasTipo=self.columns_type
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
def tearDown(self) -> None:
|
|
30
|
+
os.remove(self.path)
|
|
31
|
+
|
|
32
|
+
# Testando a classe importada
|
|
33
|
+
def test_e_classe(self):
|
|
34
|
+
self.assertFalse(is_dataclass(SQLITE))
|
|
35
|
+
|
|
36
|
+
# Testando a conexão
|
|
37
|
+
def test_conectarBanco(self):
|
|
38
|
+
database = SQLITE(self.db_name).conectarBanco()
|
|
39
|
+
database[0].close()
|
|
40
|
+
self.assertEqual(type(database), tuple)
|
|
41
|
+
|
|
42
|
+
def test_inserirDados(self):
|
|
43
|
+
self.database.inserirDados(
|
|
44
|
+
nomeTabela=self.table_name,
|
|
45
|
+
Colunas=self.columns,
|
|
46
|
+
dados=['A1','A2', 123]
|
|
47
|
+
)
|
|
48
|
+
data = self.database.verDados(
|
|
49
|
+
nomeTabela=self.table_name,
|
|
50
|
+
conditions='id = 1'
|
|
51
|
+
)
|
|
52
|
+
self.assertEqual(len(data), 1)
|
|
53
|
+
|
|
54
|
+
def test_adicionarColuna(self):
|
|
55
|
+
self.database.adicionarColuna(
|
|
56
|
+
nomeTabela=self.table_name,
|
|
57
|
+
Coluna='Col_4',
|
|
58
|
+
ColunaTipo='TEXT'
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
def test_editarDados(self):
|
|
62
|
+
self.database.inserirDados(
|
|
63
|
+
nomeTabela=self.table_name,
|
|
64
|
+
Colunas=self.columns,
|
|
65
|
+
dados=['A1','A2', 123]
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
self.database.editarDados(
|
|
69
|
+
nomeTabela=self.table_name,
|
|
70
|
+
Coluna=self.columns[2],
|
|
71
|
+
Valor='125'
|
|
72
|
+
)
|
|
73
|
+
|
|
74
|
+
data = self.database.verDados(
|
|
75
|
+
nomeTabela=self.table_name
|
|
76
|
+
)
|
|
77
|
+
|
|
78
|
+
self.assertEqual(data[0][3], 125)
|
|
79
|
+
|
|
80
|
+
def test_apagarDados(self):
|
|
81
|
+
self.database.inserirDados(
|
|
82
|
+
nomeTabela=self.table_name,
|
|
83
|
+
Colunas=self.columns,
|
|
84
|
+
dados=['A1','A2', 123]
|
|
85
|
+
)
|
|
86
|
+
self.database.apagarDados(
|
|
87
|
+
nomeTabela=self.table_name
|
|
88
|
+
)
|
|
89
|
+
data = self.database.verDados(
|
|
90
|
+
nomeTabela=self.table_name
|
|
91
|
+
)
|
|
92
|
+
self.assertEqual(len(data), 0)
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
if __name__ == '__main__':
|
|
96
|
+
unittest.main()
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: manage-sql
|
|
3
|
-
Version: 0.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 0.2.2
|
|
4
|
+
Summary: Biblioteca Python para gestão de bases de dados SQLite com maior eficiência
|
|
5
5
|
Home-page: https://github.com/webtechmoz/manage-sql
|
|
6
|
-
Author: Web Tech
|
|
6
|
+
Author: Web Tech Moz
|
|
7
7
|
Author-email: zoidycine@gmail.com
|
|
8
8
|
License: MIT
|
|
9
9
|
Keywords: manage-sql,sqlite,sqlite manager
|
|
@@ -13,28 +13,35 @@ Classifier: Operating System :: OS Independent
|
|
|
13
13
|
Requires-Python: >=3.6
|
|
14
14
|
Description-Content-Type: text/markdown
|
|
15
15
|
License-File: LICENCE
|
|
16
|
+
Requires-Dist: deprecated
|
|
17
|
+
Requires-Dist: dataclasses
|
|
18
|
+
Requires-Dist: pathlib
|
|
16
19
|
|
|
17
20
|
# SQLITE.py
|
|
18
21
|
|
|
19
22
|
`SQLITE.py` é uma classe Python para interagir com bancos de dados SQLite de forma simplificada. Esta classe fornece métodos para conectar a um banco de dados, criar tabelas, inserir dados e outras operações básicas.
|
|
20
23
|
|
|
21
24
|
## Índice
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
25
|
+
1. [Introdução](#introdução)
|
|
26
|
+
2. [Instalação](#instalação)
|
|
27
|
+
3. [Uso da Classe SQLITE](#uso-da-classe-sqlite)
|
|
28
|
+
1. [Instanciando a Classe](#instanciando-a-classe)
|
|
29
|
+
2. [Métodos Disponíveis](#métodos-disponíveis)
|
|
30
|
+
- [conectarBanco](#conectarbanco)
|
|
31
|
+
- [criarTabela](#criartabela)
|
|
32
|
+
- [inserirDados](#inserirdados)
|
|
33
|
+
- [apagarDados](#apagardados)
|
|
34
|
+
- [editarDados](#editardados)
|
|
35
|
+
- [adicionarColuna](#adicionarcoluna)
|
|
36
|
+
- [apagarColuna](#apagarcoluna)
|
|
37
|
+
- [apagarTabela](#apagartabela)
|
|
38
|
+
- [verDados](#verdados)
|
|
39
|
+
- [encryptPass (descontinuado)](#encryptpass-descontinuado)
|
|
40
|
+
- [encriptarValor](#encriptarvalor)
|
|
41
|
+
- [verDadosPlus (descontinuado)](#verdadosplus-descontinuado)
|
|
42
|
+
|
|
43
|
+
4. [Contibuição](#contribuição)
|
|
44
|
+
5. [Licença](#licença)
|
|
38
45
|
|
|
39
46
|
## Instalação
|
|
40
47
|
|
|
@@ -45,15 +52,16 @@ Não há requisitos especiais de instalação além do Python 3.6+.
|
|
|
45
52
|
Primeiro, importe a classe `SQLITE` e crie uma instância fornecendo o nome do banco de dados:
|
|
46
53
|
|
|
47
54
|
```python
|
|
48
|
-
|
|
55
|
+
# Importando a biblioteca
|
|
56
|
+
from manage-sql import SQLITE
|
|
49
57
|
|
|
50
|
-
#
|
|
58
|
+
# Instanciando a classe SQLITE
|
|
51
59
|
db = SQLITE('meu_banco')
|
|
52
60
|
```
|
|
53
61
|
|
|
54
62
|
## Métodos
|
|
55
63
|
|
|
56
|
-
### __init__
|
|
64
|
+
### __init__
|
|
57
65
|
Inicializa a classe com o nome do banco de dados.
|
|
58
66
|
|
|
59
67
|
#### Parâmetros:
|
|
@@ -64,7 +72,7 @@ nomeBanco (str): Nome do banco de dados a ser utilizado.
|
|
|
64
72
|
db = SQLITE('meu_banco')
|
|
65
73
|
```
|
|
66
74
|
|
|
67
|
-
###
|
|
75
|
+
### Conectar Banco
|
|
68
76
|
Conecta ao banco de dados e cria a pasta database se não existir.
|
|
69
77
|
|
|
70
78
|
#### Retorno:
|
|
@@ -75,7 +83,7 @@ Um objeto de conexão e cursor do banco de dados.
|
|
|
75
83
|
database, cursor = db.conectarBanco()
|
|
76
84
|
```
|
|
77
85
|
|
|
78
|
-
###
|
|
86
|
+
### Criar Tabela
|
|
79
87
|
Cria uma tabela no banco de dados.
|
|
80
88
|
|
|
81
89
|
#### Parâmetros:
|
|
@@ -92,7 +100,7 @@ db.criarTabela(
|
|
|
92
100
|
)
|
|
93
101
|
```
|
|
94
102
|
|
|
95
|
-
###
|
|
103
|
+
### Inserir Dados
|
|
96
104
|
Insere dados na tabela especificada.
|
|
97
105
|
|
|
98
106
|
#### Parâmetros:
|
|
@@ -109,7 +117,7 @@ db.inserirDados(
|
|
|
109
117
|
)
|
|
110
118
|
```
|
|
111
119
|
|
|
112
|
-
###
|
|
120
|
+
### Consultar Dados
|
|
113
121
|
Consulta dados da tabela especificada.
|
|
114
122
|
|
|
115
123
|
#### Parâmetros:
|
|
@@ -124,7 +132,7 @@ resultados = db.consultarDados(
|
|
|
124
132
|
)
|
|
125
133
|
```
|
|
126
134
|
|
|
127
|
-
###
|
|
135
|
+
### Apagar Dados
|
|
128
136
|
Deleta dados da tabela especificada com base em uma condição.
|
|
129
137
|
|
|
130
138
|
#### Parâmetros:
|
|
@@ -3,7 +3,9 @@ README.md
|
|
|
3
3
|
setup.py
|
|
4
4
|
manage_sql/SQLITE.py
|
|
5
5
|
manage_sql/__init__.py
|
|
6
|
+
manage_sql/test_SQLITE.py
|
|
6
7
|
manage_sql.egg-info/PKG-INFO
|
|
7
8
|
manage_sql.egg-info/SOURCES.txt
|
|
8
9
|
manage_sql.egg-info/dependency_links.txt
|
|
10
|
+
manage_sql.egg-info/requires.txt
|
|
9
11
|
manage_sql.egg-info/top_level.txt
|
|
@@ -2,10 +2,10 @@ from setuptools import setup, find_packages
|
|
|
2
2
|
|
|
3
3
|
setup(
|
|
4
4
|
name='manage-sql',
|
|
5
|
-
version='0.
|
|
6
|
-
author='Web Tech',
|
|
5
|
+
version='0.2.2',
|
|
6
|
+
author='Web Tech Moz',
|
|
7
7
|
author_email='zoidycine@gmail.com',
|
|
8
|
-
description='
|
|
8
|
+
description='Biblioteca Python para gestão de bases de dados SQLite com maior eficiência',
|
|
9
9
|
long_description=open('README.md', 'r', encoding='UTF-8').read(),
|
|
10
10
|
long_description_content_type='text/markdown',
|
|
11
11
|
url='https://github.com/webtechmoz/manage-sql',
|
|
@@ -17,5 +17,10 @@ setup(
|
|
|
17
17
|
'License :: OSI Approved :: MIT License',
|
|
18
18
|
'Operating System :: OS Independent',
|
|
19
19
|
],
|
|
20
|
+
install_requires=[
|
|
21
|
+
"deprecated",
|
|
22
|
+
"dataclasses",
|
|
23
|
+
"pathlib"
|
|
24
|
+
],
|
|
20
25
|
python_requires='>=3.6',
|
|
21
26
|
)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
from .SQLITE import SQLITE
|
|
File without changes
|
|
File without changes
|
|
File without changes
|