Атрибут query класса URL
Атрибут query класса URL возвращает словарь
параметров строки запроса, которые были переданы в URL
подключения. Параметры запроса - это пары ключ-значение,
расположенные после вопросительного знака ?.
Атрибут возвращает объект типа immutabledict,
то есть неизменяемый словарь. Для изменения параметров
используются методы update_query_dict и
difference_update_query.
Синтаксис
url.query
Пример
Давайте создадим объект URL с параметрами строки
запроса и выведем атрибут query:
from sqlalchemy.engine import make_url
url = make_url('sqlite:///:memory:?check_same_thread=false&timeout=30')
print(url.query)
Результат выполнения кода:
immutabledict({'check_same_thread': 'false', 'timeout': '30'})
Пример
Давайте получим отдельный параметр из словаря query:
from sqlalchemy.engine import make_url
url = make_url('sqlite:///:memory:?check_same_thread=false&timeout=30')
print(url.query['timeout'])
Результат выполнения кода:
"30"
Пример
Давайте проверим тип возвращаемого значения атрибута
query:
from sqlalchemy.engine import make_url
url = make_url('sqlite:///:memory:?check_same_thread=false')
print(type(url.query))
Результат выполнения кода:
<class 'sqlalchemy.util._collections.immutabledict'>
Пример
Давайте попробуем изменить словарь query напрямую
и убедимся, что он неизменяемый:
from sqlalchemy.engine import make_url
url = make_url('sqlite:///:memory:?check_same_thread=false')
try:
url.query['timeout'] = '30'
except TypeError as e:
print(e)
Результат выполнения кода:
"'immutabledict' object does not support item assignment"
Смотрите также
-
класс
URL,
который представляет строку URL подключения -
метод
update_query_dict,
который обновляет параметры строки запроса -
метод
difference_update_query,
который удаляет параметры строки запроса -
метод
render_as_string,
который возвращает URL в виде строки