-
Notifications
You must be signed in to change notification settings - Fork 0
Quick Start
Danila Ganchar edited this page Nov 20, 2025
·
45 revisions
qb initialization / imports / prints etc
Default query builder initialization:
from logging.config import dictConfig
from david8 import get_default_qb
# enable logging
dictConfig({
'version': 1,
'formatters': {'standard': {'format': '[%(levelname)s]: %(message)s'}},
'handlers': {
'default': {
'level': 'INFO',
'formatter': 'standard',
'class': 'logging.StreamHandler',
'stream': 'ext://sys.stdout',
},
},
'loggers': {
'': {'handlers': ['default'], 'level': 'INFO'},
'david8': {'propagate': True},
}
})
qb = get_default_qb()By default david8 will use PyFormatParamStyle with disabled quote_mode. But you can change query parameter / placeholder style or enable quote_mode like this:
for _qb in [
get_default_qb(),
get_default_qb(is_quote_mode=True),
get_default_qb(QMarkParamStyle()),
get_default_qb(NumericParamStyle()),
get_default_qb(NamedParamStyle()),
get_default_qb(FormatParamStyle()),
]:
query = (
_qb.select(
param(1).as_('first_param'),
param(2).as_('second_param'),
'column_name'
)
.from_table('table_name')
)
# to see logging info and generate query parameters
query.get_sql()
# how to get SELECT parameters
print(query.get_parameters())
print(query.get_tuple_parameters())
print(query.get_list_parameters())
# [INFO]: SELECT %(p1)s AS first_param, %(p2)s AS second_param, column_name FROM table_name {'p1': 1, 'p2': 2}
# {'p1': 1, 'p2': 2}
# (1, 2)
# [1, 2]
# [INFO]: SELECT %(p1)s AS "first_param", %(p2)s AS "second_param", "column_name" FROM "table_name" {'p1': 1, 'p2': 2}
# {'p1': 1, 'p2': 2}
# (1, 2)
# [1, 2]
# [INFO]: SELECT ? AS first_param, ? AS second_param, column_name FROM table_name {'1': 1, '2': 2}
# {'1': 1, '2': 2}
# (1, 2)
# [1, 2]
# [INFO]: SELECT $1 AS first_param, $2 AS second_param, column_name FROM table_name {'1': 1, '2': 2}
# {'1': 1, '2': 2}
# (1, 2)
# [1, 2]
# [INFO]: SELECT :p1 AS first_param, :p2 AS second_param, column_name FROM table_name {'p1': 1, 'p2': 2}
# {'p1': 1, 'p2': 2}
# (1, 2)
# [1, 2]
# [INFO]: SELECT %s AS first_param, %s AS second_param, column_name FROM table_name {'1': 1, '2': 2}
# {'1': 1, '2': 2}
# (1, 2)
# [1, 2]