Module for handler postgresql more easy
Project description
Sqlalchemy Module V0.3.4
Fachada de la libreria Sqlalchemy 1.4.x
Properties | Requerido | Valor por defecto | Descripción |
---|---|---|---|
url_connection | :heavy_check_mark: | - | Url de conexión de la base de datos |
path_module_schema | :heavy_check_mark: | - | Paquete de python donde se almacenaran todos las clases python que representan las tablas de base de datos |
ddl_auto | :heavy_check_mark: | - | Atributo que dependiendo de una valores especificos actuan sobre el comportamiento de la base de datos cuando arranca la aplicación |
QuickStart
En el momento que se importa el módulo "postgresql_db" se ejecuta la funcion "load_declarative_models()" esta funcion es la encargada de gestionar la creacion de la base de datos, por defecto usa la configuración del archivo properties.ini.
Propiedad ddl_auto
Dentro del archivo configuracion se puede definir un parametro ddl_auto
que en funcion del valor actua de diferente
manera contra la base de datos.
Al importar el modulo postgresql_db
de la siguiente forma import postgresql_db
se ejuta la
funcion load_declarative_models()
lo que da lugar a obtener dicho valor del fichero properties.ini
y a tomar el valor de la variable ddl_auto
tomando
el valor del archivo de properties.ini
[BD_CORE]
db_ip=172.17.0.2
db_port=5432
db_user=postgres
db_password=mysecretpassword
db_name=sqlalchemy
url_connection=postgresql+psycopg2://%(db_user)s:%(db_password)s@%(db_ip)s:%(db_port)s/%(db_name)s
path_module_schema=models
ddl_auto=create
Las variables db_ip
, db_port
, db_user
, db_password
, db_name
, url_connection
son variables destinadas a
la configuración de conxion con la base de datos. La variable url_connection
no es necesario modificarla ya que es
una variable compuesta para un uso mas sencillo.
Otras propiedades
ddl_auto
La variable ddl_auto puede tomar dos valores que explicaremos a continuación que son create
y drop_create
cualquier
otro valor no tendra efecto
ddl_auto=create
Usando los modelos representados con clases de python genera las tablas automaticamente cuando se importa el módulo
postgresql_db
-> import postgresql_db
las tablas antiguas no se borran, es decir. Si en el modelo ponemos el nombre
de una tabla como users
y luego lo cambiamos a user
se crearan dos tablas la tabla con el nombre huerfano
no se borra automaticamente.
ddl_auto=drop_create
Esta opcion brinda la opción de borrar todas las tables que esten representadas en los modelos y la vuelve a generar. Si existe una tabla y no esté representada en el modelo por algun cambio esta tabla no se borrara.
Caso de uso alternativo
Si por algun motivo desea ejecutar dicho metodo manualmente ignorando lo que este en el archivo de configuración
evite importar el modulo de esta forma import postgresql_db
importe directamente la funcion y asi evitar la ejecucion
del modulo de esta forma from postgresql_db import load_declarative_models
y posteriormente pasele el valor
manualmente
de esta forma load_declarative_models(ddl_auto='create')
path_module_schema
Esta variable define en que nombre del paquete va a almacenar los modelos para que la libreria los localice y cree las tablas automaticamente. Dado el nombre no importa si los modelos estan en multiples ficheros siempre y cuando esten debajo del paquete indicado
Es necesario importar Base
de esta manera from postgresql_db import Base
y extender de la clase Base
para que
la libreria sea capaz de encontrar todos los paquetes que se mapearan en la base de datos como se obseva en el siguiente
ejemplo
from postgresql_db import Base
from sqlalchemy import Column, String
from postgresql_db.inmutables import _Params
class User(Base):
__tablename__ = 'user'
uuid = Column(String, primary_key=True)
username = Column(String)
email = Column(String)
lastname = Column(String)
def __init__(self, **kwargs):
self.uuid = kwargs.get(_Params.UUID)
self.username = kwargs.get(_Params.USERNAME)
self.email = kwargs.get(_Params.EMAIL)
self.lastname = kwargs.get(_Params.LASTNAME)
Consultas
Dentro de la libreria se categorizan 3 tipos de grupos de consultas. BasicQuery
, StandardQuery
, AdvanceQuery
cada
una posee diferentes tipos de consultas que veremos a continuancion con ejemplos
Para crear una transaccion y evitar llenar la base de datos de conexiones huerfanas es necesario cada vez que se vaya
a usar alguna Query
independiente de su tipo hacerlo de esta forma.
from postgresql_db import BasicQueryImpl
from postgresql_db.interfaces import BasicQuery
from postgresql_db.configs import StandardSession
if __name__ == '__main__':
with StandardSession() as session:
basic_query: BasicQuery = BasicQueryImpl(session=session)
Notese que BasicQuery
, StandardQuery
, AdvanceQuery
son interfaces que pertenecen al modulo de
postgresql_db.interfaces
y tienen sus respectivas implementaciones que estan en el modulo de postgresql_db
BasicQuery
Reune un grupo de operaciones con la base de datos basico como guardar y retornar todos lo valores
save()
Este metodo recibe como parametro un modelo directo que representa a la base de datos save(model=modelo)
como se
muestra a continuación
from models import User
from postgresql_db import BasicQueryImpl
from generic_utils import CleanDevGenericUtils
from postgresql_db.interfaces import BasicQuery
from postgresql_db.configs import StandardSession
utils: CleanDevGenericUtils = CleanDevGenericUtils()
if __name__ == '__main__':
user: User = User(
uuid=utils.get_uuid4(),
username='Daniel',
email='danielr@mail.com',
lastname='Rodriguez'
)
with StandardSession() as session:
basic_query: BasicQuery = BasicQueryImpl(session=session)
basic_query.save(model=user)
save_all()
Este metodo recibe una lista de modelos y los guarda de una sola consulta en la base de datos
save_all(models=list_models)
como se muestra a continuación
from models import User
from postgresql_db import BasicQueryImpl
from generic_utils import CleanDevGenericUtils
from postgresql_db.interfaces import BasicQuery
from postgresql_db.configs import StandardSession
utils: CleanDevGenericUtils = CleanDevGenericUtils()
if __name__ == '__main__':
user1: User = User(
uuid=utils.get_uuid4(),
username='Daniel',
email='danielr@mail.com',
lastname='Rodriguez'
)
user2: User = User(
uuid=utils.get_uuid4(),
username='Pedro',
email='pedro@mail.com',
lastname='Ramos'
)
userN: User = User(
uuid=utils.get_uuid4(),
username='Juan',
email='juan@mail.com',
lastname='Hernandez'
)
list_model: list = [user1, user2, userN]
with StandardSession() as session:
basic_query: BasicQuery = BasicQueryImpl(session=session)
basic_query.save_all(list_model=list_model)
find_all()
Este metodo recibe un nombre en formato string que debe de coincidir con el nombre de la clase del modelo y retornara
todos los registros de dicha tabla en una lista de esta manera basic_query.find_all(class_name='User')
from postgresql_db import BasicQueryImpl
from generic_utils import CleanDevGenericUtils
from postgresql_db.interfaces import BasicQuery
from postgresql_db.configs import StandardSession
utils: CleanDevGenericUtils = CleanDevGenericUtils()
if __name__ == '__main__':
with StandardSession() as session:
basic_query: BasicQuery = BasicQueryImpl(session=session)
user_list: list = basic_query.find_all(class_name='User')
for user in user_list:
print(user.uuid)
StandardQuery
Reune un grupo de operaciones con la base de datos relacionadas con borrados y consultas filtrados por campos en concreto.
La mayoria de metodos de este grupo recibedos parametros class_name
y query_dict
donde 'class_name' viene siendo
el nombre de la clase que representa la tabla en base de datos y 'query_dict' el patron de busqueda en formato dict
de
python como veremos a continuación en los ejemplos siguientes.
Para las pruebas tendremos en cuenta que los registro de base de datos son los siguientes
uuid | username | lastname | |
---|---|---|---|
0548604f-4990-482b-977a-7c4164c816a9 | Manuel | manuel@mail.com | Rodriguez |
7a4fb3c5-5470-4da6-9e37-96bff32a0d4b | Daniel | danielr@mail.com | Rodriguez |
8ba5f9a1-24e0-4706-bde1-823954ee584d | Juan | juan@mail.com | Hernandez |
af3bccd6-476e-4a01-9d60-ff15a89eaaef | Pedro | pedro@mail.com | Ramos |
find_by_filter()
Este metodo recibe como parametros class_name
, query_dict
donde:
class_name
es el nombre de la clase que representa la tabla en base de datos
query_dict
es la query que seleccionara los registros
Usa en la query el tipico LIKE=%value%
para la consulta
from postgresql_db import StandardQueryImpl
from generic_utils import CleanDevGenericUtils
from postgresql_db.interfaces import StandardQuery
from postgresql_db.configs import StandardSession
utils: CleanDevGenericUtils = CleanDevGenericUtils()
if __name__ == '__main__':
# | 0548604f-4990-482b-977a-7c4164c816a9 | Manuel | manuel@mail.com | Rodriguez |
# | 7a4fb3c5-5470-4da6-9e37-96bff32a0d4b | Daniel | danielr@mail.com | Rodriguez |
# | 8ba5f9a1-24e0-4706-bde1-823954ee584d | Juan | juan@mail.com | Hernandez |
# | af3bccd6-476e-4a01-9d60-ff15a89eaaef | Pedro | pedro@mail.com | Ramos |
with StandardSession() as session:
standard_query: StandardQuery = StandardQueryImpl(session=session)
user_list = standard_query.find_by_filter(
class_name='User',
query_dict={'email': 'manuel@mail.com'}
) # retorna 1 item
# | 0548604f-4990-482b-977a-7c4164c816a9 | Manuel | manuel@mail.com | Rodriguez |
user_list = standard_query.find_by_filter(
class_name='User',
query_dict={'lastname': 'Rodriguez'}
) # retorna 2 item
# | 0548604f-4990-482b-977a-7c4164c816a9 | Manuel | manuel@mail.com | Rodriguez |
# | 7a4fb3c5-5470-4da6-9e37-96bff32a0d4b | Daniel | danielr@mail.com | Rodriguez |
user_list = standard_query.find_by_filter(
class_name='User',
query_dict={
'lastname': 'Rodriguez',
'username': 'Manuel'
}
) # retorna 1 item
# | 0548604f-4990-482b-977a-7c4164c816a9 | Manuel | manuel@mail.com | Rodriguez |
find_by_filter_like()
Este metodo recibe como parametros class_name
, query_dict
donde:
class_name
es el nombre de la clase que representa la tabla en base de datos
query_dict
es la query que seleccionara los registros
Usa en la query el tipico LIKE=%value%
para la consulta
from postgresql_db import StandardQueryImpl
from generic_utils import CleanDevGenericUtils
from postgresql_db.interfaces import StandardQuery
from postgresql_db.configs import StandardSession
utils: CleanDevGenericUtils = CleanDevGenericUtils()
if __name__ == '__main__':
# | 0548604f-4990-482b-977a-7c4164c816a9 | Manuel | manuel@mail.com | Rodriguez |
# | 7a4fb3c5-5470-4da6-9e37-96bff32a0d4b | Daniel | danielr@mail.com | Rodriguez |
# | 8ba5f9a1-24e0-4706-bde1-823954ee584d | Juan | juan@mail.com | Hernandez |
# | af3bccd6-476e-4a01-9d60-ff15a89eaaef | Pedro | pedro@mail.com | Ramos |
with StandardSession() as session:
standard_query: StandardQuery = StandardQueryImpl(session=session)
user_list = standard_query.find_by_filter_like(
class_name='User',
query_dict={'lastname': 'a'}
) # retorna 4 item
# | 8ba5f9a1-24e0-4706-bde1-823954ee584d | Juan | juan@mail.com | Hernandez |
# | af3bccd6-476e-4a01-9d60-ff15a89eaaef | Pedro | pedro@mail.com | Ramos |
user_list = standard_query.find_by_filter_like(
class_name='User',
query_dict={'lastname': 'r'}
) # retorna 3 item
# | 0548604f-4990-482b-977a-7c4164c816a9 | Manuel | manuel@mail.com | Rodriguez |
# | 7a4fb3c5-5470-4da6-9e37-96bff32a0d4b | Daniel | danielr@mail.com | Rodriguez |
# | 8ba5f9a1-24e0-4706-bde1-823954ee584d | Juan | juan@mail.com | Hernandez |
user_list = standard_query.find_by_filter_like(
class_name='User',
query_dict={
'lastname': 'r',
'email': 'juan'
}
) # retorna 1 item
# | 8ba5f9a1-24e0-4706-bde1-823954ee584d | Juan | juan@mail.com | Hernandez |
get_one()
Este metodo recibe como parametros class_name
, query_dict
donde:
class_name
es el nombre de la clase que representa la tabla en base de datos
query_dict
es la query que seleccionara los registros
Retorna un unico modelo por lo tanto lo mas aconsejable es usarlo con campos como claves primarias
from models import User
from postgresql_db import StandardQueryImpl
from generic_utils import CleanDevGenericUtils
from postgresql_db.interfaces import StandardQuery
from postgresql_db.configs import StandardSession
utils: CleanDevGenericUtils = CleanDevGenericUtils()
if __name__ == '__main__':
# | 0548604f-4990-482b-977a-7c4164c816a9 | Manuel | manuel@mail.com | Rodriguez |
# | 7a4fb3c5-5470-4da6-9e37-96bff32a0d4b | Daniel | danielr@mail.com | Rodriguez |
# | 8ba5f9a1-24e0-4706-bde1-823954ee584d | Juan | juan@mail.com | Hernandez |
# | af3bccd6-476e-4a01-9d60-ff15a89eaaef | Pedro | pedro@mail.com | Ramos |
with StandardSession() as session:
standard_query: StandardQuery = StandardQueryImpl(session=session)
user: User = standard_query.get_one(class_name='User', query_dict={'email': 'juan@mail.com'})
# | 8ba5f9a1-24e0-4706-bde1-823954ee584d | Juan | juan@mail.com | Hernandez |
get_first()
Este metodo recibe como parametros class_name
, query_dict
donde:
class_name
es el nombre de la clase que representa la tabla en base de datos
query_dict
es la query que seleccionara los registros
Retorna un unico modelo pese a no ser un elemento unico en la base de datos, retorna la primera ocurrencia que cumpla con dicho criterio
from models import User
from postgresql_db import StandardQueryImpl
from generic_utils import CleanDevGenericUtils
from postgresql_db.interfaces import StandardQuery
from postgresql_db.configs import StandardSession
utils: CleanDevGenericUtils = CleanDevGenericUtils()
if __name__ == '__main__':
# | 0548604f-4990-482b-977a-7c4164c816a9 | Manuel | manuel@mail.com | Rodriguez |
# | 7a4fb3c5-5470-4da6-9e37-96bff32a0d4b | Daniel | danielr@mail.com | Rodriguez |
# | 8ba5f9a1-24e0-4706-bde1-823954ee584d | Juan | juan@mail.com | Hernandez |
# | af3bccd6-476e-4a01-9d60-ff15a89eaaef | Pedro | pedro@mail.com | Ramos |
with StandardSession() as session:
standard_query: StandardQuery = StandardQueryImpl(session=session)
user: User = standard_query.get_first(class_name='User', query_dict={'lastname': 'Rodriguez'})
# | 7a4fb3c5-5470-4da6-9e37-96bff32a0d4b | Daniel | danielr@mail.com | Rodriguez |
get_first_like()
Este metodo recibe como parametros class_name
, query_dict
donde:
class_name
es el nombre de la clase que representa la tabla en base de datos
query_dict
es la query que seleccionara los registros
Retorna un unico modelo pese a no ser un elemento unico en la base de datos que cumpla con dicho criterio usando
Usa en la query el tipico LIKE=%value%
para la consulta
from models import User
from postgresql_db import StandardQueryImpl
from generic_utils import CleanDevGenericUtils
from postgresql_db.interfaces import StandardQuery
from postgresql_db.configs import StandardSession
utils: CleanDevGenericUtils = CleanDevGenericUtils()
if __name__ == '__main__':
# | 0548604f-4990-482b-977a-7c4164c816a9 | Manuel | manuel@mail.com | Rodriguez |
# | 7a4fb3c5-5470-4da6-9e37-96bff32a0d4b | Daniel | danielr@mail.com | Rodriguez |
# | 8ba5f9a1-24e0-4706-bde1-823954ee584d | Juan | juan@mail.com | Hernandez |
# | af3bccd6-476e-4a01-9d60-ff15a89eaaef | Pedro | pedro@mail.com | Ramos |
with StandardSession() as session:
standard_query: StandardQuery = StandardQueryImpl(session=session)
user: User = standard_query.get_first_like(class_name='User', query_dict={'lastname': 'Rodriguez'})
# | 7a4fb3c5-5470-4da6-9e37-96bff32a0d4b | Daniel | danielr@mail.com | Rodriguez |
update()
Este metodo recibe como parametros class_name
, query_dict
, update_data
donde:
class_name
es el nombre de la clase que representa la tabla en base de datos
query_dict
es la query que seleccionara los registros afectados por la modificación
update_data
los registros que se van a actualizar para todos los registros selecionados por la busqueda
Actualiza los registros selecionados en la query y los actualiza usando el criterio pasado en `update_data
from models import User
from postgresql_db import StandardQueryImpl
from generic_utils import CleanDevGenericUtils
from postgresql_db.interfaces import StandardQuery
from postgresql_db.configs import StandardSession
utils: CleanDevGenericUtils = CleanDevGenericUtils()
if __name__ == '__main__':
# | 0548604f-4990-482b-977a-7c4164c816a9 | Manuel | manuel@mail.com | Rodriguez |
# | 7a4fb3c5-5470-4da6-9e37-96bff32a0d4b | Daniel | danielr@mail.com | Rodriguez |
# | 8ba5f9a1-24e0-4706-bde1-823954ee584d | Juan | juan@mail.com | Hernandez |
# | af3bccd6-476e-4a01-9d60-ff15a89eaaef | Pedro | pedro@mail.com | Ramos |
with StandardSession() as session:
standard_query: StandardQuery = StandardQueryImpl(session=session)
update_row: dict = {
'uuid': '0548604f-4990-482b-977a-7c4164c816a9',
'username': 'Manuel'
}
user: User = standard_query.get_first_like(class_name='User', query_dict={'lastname': 'Rodriguez'})
user: User = standard_query.update(
class_name='User',
query_dict={'email': 'manuel@mail.com'},
update_data=update_row
)
# | 0548604f-4990-482b-977a-7c4164c816a9 | Manuela | manuel@mail.com | Rodriguez |
update_like()
Este metodo recibe como parametros class_name
, query_dict
, update_data
donde:
class_name
es el nombre de la clase que representa la tabla en base de datos
query_dict
es la query que seleccionara los registros afectados por la modificación
update_data
los registros que se van a actualizar para todos los registros selecionados por la busqueda
Actualiza los registros selecionados en la query y los actualiza usando el criterio pasado en update_data
Usa en la query el tipico LIKE=%value%
para la consulta
number_rows()
Este metodo recibe como parametros class_name
, query_dict
donde:
class_name
es el nombre de la clase que representa la tabla en base de datos
query_dict
es la query que seleccionara los registros a contar
Retorna el numero de registro encontrados
from postgresql_db import StandardQueryImpl
from generic_utils import CleanDevGenericUtils
from postgresql_db.interfaces import StandardQuery
from postgresql_db.configs import StandardSession
utils: CleanDevGenericUtils = CleanDevGenericUtils()
if __name__ == '__main__':
with StandardSession() as session:
standard_query: StandardQuery = StandardQueryImpl(session=session)
# | 0548604f-4990-482b-977a-7c4164c816a9 | Manuel | manuel@mail.com | Rodriguez |
# | 7a4fb3c5-5470-4da6-9e37-96bff32a0d4b | Daniel | danielr@mail.com | Rodriguez |
# | 8ba5f9a1-24e0-4706-bde1-823954ee584d | Juan | juan@mail.com | Hernandez |
# | af3bccd6-476e-4a01-9d60-ff15a89eaaef | Pedro | pedro@mail.com | Ramos |
rows: int = standard_query.number_rows(
class_name='User',
query_dict={'email': 'manuel@mail.com'},
)
print(rows) # 1
rows: int = standard_query.number_rows(
class_name='User',
query_dict={},
)
print(rows) # 4
delete()
Este metodo recibe como parametros class_name
, query_dict
donde:
class_name
es el nombre de la clase que representa la tabla en base de datos
query_dict
es la query que seleccionara los registros a contar
Elimina todos los registros seleccionados en la consulta
from postgresql_db import StandardQueryImpl
from generic_utils import CleanDevGenericUtils
from postgresql_db.interfaces import StandardQuery
from postgresql_db.configs import StandardSession
utils: CleanDevGenericUtils = CleanDevGenericUtils()
if __name__ == '__main__':
with StandardSession() as session:
standard_query: StandardQuery = StandardQueryImpl(session=session)
# | 0548604f-4990-482b-977a-7c4164c816a9 | Manuel | manuel@mail.com | Rodriguez |
# | 7a4fb3c5-5470-4da6-9e37-96bff32a0d4b | Daniel | danielr@mail.com | Rodriguez |
# | 8ba5f9a1-24e0-4706-bde1-823954ee584d | Juan | juan@mail.com | Hernandez |
# | af3bccd6-476e-4a01-9d60-ff15a89eaaef | Pedro | pedro@mail.com | Ramos |
standard_query.delete(
class_name='User',
query_dict={'email': 'manuel@mail.com'},
)
# | 7a4fb3c5-5470-4da6-9e37-96bff32a0d4b | Daniel | danielr@mail.com | Rodriguez |
# | 8ba5f9a1-24e0-4706-bde1-823954ee584d | Juan | juan@mail.com | Hernandez |
# | af3bccd6-476e-4a01-9d60-ff15a89eaaef | Pedro | pedro@mail.com | Ramos |
delete_like()
Este metodo recibe como parametros class_name
, query_dict
donde:
class_name
es el nombre de la clase que representa la tabla en base de datos
query_dict
es la query que seleccionara los registros a contar
Elimina todos los registros seleccionados en la consulta
Usa en la query el tipico LIKE=%value%
para la consulta
from postgresql_db import StandardQueryImpl
from generic_utils import CleanDevGenericUtils
from postgresql_db.interfaces import StandardQuery
from postgresql_db.configs import StandardSession
utils: CleanDevGenericUtils = CleanDevGenericUtils()
if __name__ == '__main__':
with StandardSession() as session:
standard_query: StandardQuery = StandardQueryImpl(session=session)
# | 0548604f-4990-482b-977a-7c4164c816a9 | Manuel | manuel@mail.com | Rodriguez |
# | 7a4fb3c5-5470-4da6-9e37-96bff32a0d4b | Daniel | danielr@mail.com | Rodriguez |
# | 8ba5f9a1-24e0-4706-bde1-823954ee584d | Juan | juan@mail.com | Hernandez |
# | af3bccd6-476e-4a01-9d60-ff15a89eaaef | Pedro | pedro@mail.com | Ramos |
standard_query.delete_like()(
class_name='User',
query_dict={'lastname': 'z'},
)
# | af3bccd6-476e-4a01-9d60-ff15a89eaaef | Pedro | pedro@mail.com | Ramos |
AdvanceQuery
find_all()
Este metodo recibe como parametros class_name
, query_dict
donde:
class_name
es el nombre de la clase que representa la tabla en base de datos
page
el numero de pagina a consultar
row_for_page
numero de registros que retorna para esa pagina
Busca todos los registro de una tabla y los pagina segun se le indique
from postgresql_db import AdvanceQuerysImpl
from generic_utils import CleanDevGenericUtils
from postgresql_db.interfaces import AdvanceQuery
from postgresql_db.configs import StandardSession
utils: CleanDevGenericUtils = CleanDevGenericUtils()
if __name__ == '__main__':
with StandardSession() as session:
advance_query: AdvanceQuery = AdvanceQuerysImpl(session=session)
# | 0548604f-4990-482b-977a-7c4164c816a9 | Manuel | manuel@mail.com | Rodriguez |
# | 7a4fb3c5-5470-4da6-9e37-96bff32a0d4b | Daniel | danielr@mail.com | Rodriguez |
# | 8ba5f9a1-24e0-4706-bde1-823954ee584d | Juan | juan@mail.com | Hernandez |
# | af3bccd6-476e-4a01-9d60-ff15a89eaaef | Pedro | pedro@mail.com | Ramos |
list_users: list = advance_query.find_all(class_name='User', page=0, row_for_page=1)
# | 0548604f-4990-482b-977a-7c4164c816a9 | Manuel | manuel@mail.com | Rodriguez |
list_users: list = advance_query.find_all(class_name='User', page=1, row_for_page=1)
# | 7a4fb3c5-5470-4da6-9e37-96bff32a0d4b | Daniel | danielr@mail.com | Rodriguez |
list_users: list = advance_query.find_all(class_name='User', page=2, row_for_page=1)
# | 8ba5f9a1-24e0-4706-bde1-823954ee584d | Juan | juan@mail.com | Hernandez |
list_users: list = advance_query.find_all(class_name='User', page=3, row_for_page=1)
# | af3bccd6-476e-4a01-9d60-ff15a89eaaef | Pedro | pedro@mail.com | Ramos |
list_users: list = advance_query.find_all(class_name='User', page=0, row_for_page=2)
# | 0548604f-4990-482b-977a-7c4164c816a9 | Manuel | manuel@mail.com | Rodriguez |
# | 7a4fb3c5-5470-4da6-9e37-96bff32a0d4b | Daniel | danielr@mail.com | Rodriguez |
list_users: list = advance_query.find_all(class_name='User', page=1, row_for_page=2)
# | 8ba5f9a1-24e0-4706-bde1-823954ee584d | Juan | juan@mail.com | Hernandez |
# | af3bccd6-476e-4a01-9d60-ff15a89eaaef | Pedro | pedro@mail.com | Ramos |
find_by_filter()
Este metodo recibe como parametros class_name
, query_dict
donde:
class_name
es el nombre de la clase que representa la tabla en base de datos
query_dict
es la query que seleccionara los registros a contar
page
el numero de pagina a consultar
row_for_page
numero de registros que retorna para esa pagina
from postgresql_db import AdvanceQuerysImpl
from generic_utils import CleanDevGenericUtils
from postgresql_db.interfaces import AdvanceQuery
from postgresql_db.configs import StandardSession
utils: CleanDevGenericUtils = CleanDevGenericUtils()
if __name__ == '__main__':
with StandardSession() as session:
advance_query: AdvanceQuery = AdvanceQuerysImpl(session=session)
# | 0548604f-4990-482b-977a-7c4164c816a9 | Manuel | manuel@mail.com | Rodriguez |
# | 7a4fb3c5-5470-4da6-9e37-96bff32a0d4b | Daniel | danielr@mail.com | Rodriguez |
# | 8ba5f9a1-24e0-4706-bde1-823954ee584d | Juan | juan@mail.com | Hernandez |
# | af3bccd6-476e-4a01-9d60-ff15a89eaaef | Pedro | pedro@mail.com | Ramos |
list_users: list = advance_query.find_by_filter(
class_name='User',
query_dict={'lastname': 'Rodriguez'},
page=0,
row_for_page=2
)
# | 0548604f-4990-482b-977a-7c4164c816a9 | Manuel | manuel@mail.com | Rodriguez |
# | 7a4fb3c5-5470-4da6-9e37-96bff32a0d4b | Daniel | danielr@mail.com | Rodriguez |
Busca los registro segun de una tabla segun criterio elegido y los pagina segun se le indique
find_by_filter_like()
Este metodo recibe como parametros class_name
, query_dict
donde:
class_name
es el nombre de la clase que representa la tabla en base de datos
query_dict
es la query que seleccionara los registros a contar
page
el numero de pagina a consultar
row_for_page
numero de registros que retorna para esa pagina
Busca los registro segun de una tabla segun criterio elegido y los pagina segun se le indique
Usa en la query el tipico LIKE=%value%
para la consulta
from postgresql_db import AdvanceQuerysImpl
from generic_utils import CleanDevGenericUtils
from postgresql_db.interfaces import AdvanceQuery
from postgresql_db.configs import StandardSession
utils: CleanDevGenericUtils = CleanDevGenericUtils()
if __name__ == '__main__':
with StandardSession() as session:
advance_query: AdvanceQuery = AdvanceQuerysImpl(session=session)
# | 0548604f-4990-482b-977a-7c4164c816a9 | Manuel | manuel@mail.com | Rodriguez |
# | 7a4fb3c5-5470-4da6-9e37-96bff32a0d4b | Daniel | danielr@mail.com | Rodriguez |
# | 8ba5f9a1-24e0-4706-bde1-823954ee584d | Juan | juan@mail.com | Hernandez |
# | af3bccd6-476e-4a01-9d60-ff15a89eaaef | Pedro | pedro@mail.com | Ramos |
list_users: list = advance_query.find_by_filter_like(
class_name='User',
query_dict={'lastname': 'z'},
page=0,
row_for_page=2
)
# | 0548604f-4990-482b-977a-7c4164c816a9 | Manuel | manuel@mail.com | Rodriguez |
# | 7a4fb3c5-5470-4da6-9e37-96bff32a0d4b | Daniel | danielr@mail.com | Rodriguez |
list_users = advance_query.find_by_filter_like(
class_name='User',
query_dict={'lastname': 'z'},
page=1,
row_for_page=2
)
# | 8ba5f9a1-24e0-4706-bde1-823954ee584d | Juan | juan@mail.com | Hernandez |
find_by_filter_and_order_by()
Este metodo recibe como parametros class_name
, query_dict
donde:
class_name
es el nombre de la clase que representa la tabla en base de datos
query_dict
es la query que seleccionara los registros a contar
order_type
elige el tipo de orden ascendente o descendente
order_colum
columna por la cual desea ordenar
page
el numero de pagina a consultar
row_for_page
numero de registros que retorna para esa pagina
Busca los registro segun de una tabla segun criterio elegido, los pagina y lo ordena por la columna indicada
from postgresql_db import AdvanceQuerysImpl
from generic_utils import CleanDevGenericUtils
from postgresql_db.interfaces import AdvanceQuery
from postgresql_db.configs import StandardSession
utils: CleanDevGenericUtils = CleanDevGenericUtils()
if __name__ == '__main__':
with StandardSession() as session:
advance_query: AdvanceQuery = AdvanceQuerysImpl(session=session)
# | 0548604f-4990-482b-977a-7c4164c816a9 | Manuel | manuel@mail.com | Rodriguez |
# | 7a4fb3c5-5470-4da6-9e37-96bff32a0d4b | Daniel | danielr@mail.com | Rodriguez |
# | 8ba5f9a1-24e0-4706-bde1-823954ee584d | Juan | juan@mail.com | Hernandez |
# | af3bccd6-476e-4a01-9d60-ff15a89eaaef | Pedro | pedro@mail.com | Ramos |
list_users: list = advance_query.find_by_filter_and_order_by(
class_name='User',
query_dict={},
order_type='asc',
order_colum='lastname',
page=0,
row_for_page=4
)
# | 8ba5f9a1-24e0-4706-bde1-823954ee584d | Juan | juan@mail.com | Hernandez |
# | af3bccd6-476e-4a01-9d60-ff15a89eaaef | Pedro | pedro@mail.com | Ramos |
# | 7a4fb3c5-5470-4da6-9e37-96bff32a0d4b | Daniel | danielr@mail.com | Rodriguez |
# | 0548604f-4990-482b-977a-7c4164c816a9 | Manuel | manuel@mail.com | Rodriguez |
list_users: list = advance_query.find_by_filter_and_order_by(
class_name='User',
query_dict={},
order_type='desc',
order_colum='lastname',
page=0,
row_for_page=4
)
# | 7a4fb3c5-5470-4da6-9e37-96bff32a0d4b | Daniel | danielr@mail.com | Rodriguez |
# | 0548604f-4990-482b-977a-7c4164c816a9 | Manuel | manuel@mail.com | Rodriguez |
# | af3bccd6-476e-4a01-9d60-ff15a89eaaef | Pedro | pedro@mail.com | Ramos |
# | 8ba5f9a1-24e0-4706-bde1-823954ee584d | Juan | juan@mail.com | Hernandez |
find_by_filter_like_and_order_by()
Este metodo recibe como parametros class_name
, query_dict
donde:
class_name
es el nombre de la clase que representa la tabla en base de datos
query_dict
es la query que seleccionara los registros a contar
order_type
elige el tipo de orden ascendente o descendente
order_colum
columna por la cual desea ordenar
page
el numero de pagina a consultar
row_for_page
numero de registros que retorna para esa pagina
Busca los registro segun de una tabla segun criterio elegido, los pagina y lo ordena por la columna indicada
Usa en la query el tipico LIKE=%value%
para la consulta
from postgresql_db import AdvanceQuerysImpl
from generic_utils import CleanDevGenericUtils
from postgresql_db.interfaces import AdvanceQuery
from postgresql_db.configs import StandardSession
utils: CleanDevGenericUtils = CleanDevGenericUtils()
if __name__ == '__main__':
with StandardSession() as session:
advance_query: AdvanceQuery = AdvanceQuerysImpl(session=session)
# | 0548604f-4990-482b-977a-7c4164c816a9 | Manuel | manuel@mail.com | Rodriguez |
# | 7a4fb3c5-5470-4da6-9e37-96bff32a0d4b | Daniel | danielr@mail.com | Rodriguez |
# | 8ba5f9a1-24e0-4706-bde1-823954ee584d | Juan | juan@mail.com | Hernandez |
# | af3bccd6-476e-4a01-9d60-ff15a89eaaef | Pedro | pedro@mail.com | Ramos |
list_users: list = advance_query.find_by_filter_and_order_by(
class_name='User',
query_dict={},
order_type='asc',
order_colum='lastname',
page=0,
row_for_page=4
)
# | 8ba5f9a1-24e0-4706-bde1-823954ee584d | Juan | juan@mail.com | Hernandez |
# | af3bccd6-476e-4a01-9d60-ff15a89eaaef | Pedro | pedro@mail.com | Ramos |
# | 7a4fb3c5-5470-4da6-9e37-96bff32a0d4b | Daniel | danielr@mail.com | Rodriguez |
# | 0548604f-4990-482b-977a-7c4164c816a9 | Manuel | manuel@mail.com | Rodriguez |
list_users: list = advance_query.find_by_filter_and_order_by(
class_name='User',
query_dict={},
order_type='desc',
order_colum='lastname',
page=0,
row_for_page=4
)
# | 7a4fb3c5-5470-4da6-9e37-96bff32a0d4b | Daniel | danielr@mail.com | Rodriguez |
# | 0548604f-4990-482b-977a-7c4164c816a9 | Manuel | manuel@mail.com | Rodriguez |
# | af3bccd6-476e-4a01-9d60-ff15a89eaaef | Pedro | pedro@mail.com | Ramos |
# | 8ba5f9a1-24e0-4706-bde1-823954ee584d | Juan | juan@mail.com | Hernandez |
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for cleandev-postgresql-db-0.3.4.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1b29ccff759aa4a19f9c7b726a8053fa78f143c2cb6be47605dda5e5990ef505 |
|
MD5 | 7a0216e57b14146b0965f6044f84d401 |
|
BLAKE2b-256 | 63c0de022e88fab8326fd9e66f55701dfcd142c41d4d5fd6e15fcb327b671c39 |