Skip to content

Commit bff37d0

Browse files
committed
Update VkRequestsPull example
1 parent 2ce2f6b commit bff37d0

File tree

1 file changed

+39
-18
lines changed

1 file changed

+39
-18
lines changed

examples/requests_pool.py

Lines changed: 39 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,11 @@
99

1010

1111
def main():
12-
""" Пример работы с VkRequestsPool """
12+
""" Пример работы с VkRequestsPool
13+
14+
VkRequestsPool позволяет выполнять до 25 запросов к API за один запрос
15+
к серверу с помощю метода execute.
16+
"""
1317

1418
login, password = '[email protected]', 'mypassword'
1519
vk_session = vk_api.VkApi(login, password)
@@ -20,9 +24,24 @@ def main():
2024
print(error_msg)
2125
return
2226

27+
with vk_api.VkRequestsPool(vk_session) as pool:
28+
friends = pool.method('friends.get')
29+
status = pool.method('status.get')
30+
31+
# Пример запроса с ошибкой
32+
request_with_error = pool.method('wall.getById')
33+
34+
""" Обратите внимание, что запрос выполняется после выхода из with
35+
и к результатам обратиться можно только после выхода из него
2336
"""
24-
Позволяет выполнять до 25 запросов к API за один запрос.
25-
Работает через метод execute.
37+
38+
print(friends.result)
39+
print(status.result)
40+
41+
# False - поэтому нельзя обратиться к результату
42+
print(request_with_error.ok)
43+
44+
""" Пример получения друзей у нескольких пользователей за один запрос
2645
"""
2746

2847
friends = {}
@@ -34,28 +53,30 @@ def main():
3453
'fields': 'photo'
3554
})
3655

56+
for key, value in friends.items():
57+
friends[key] = value.result
58+
3759
print(friends)
3860

39-
# Same result
40-
with vk_api.VkRequestsPool(vk_session) as pool:
41-
friends = pool.method_one_param(
42-
'friends.get',
43-
key='user_id',
44-
default_values={'fields': 'photo'},
45-
values=[1, 183433824]
46-
)
61+
""" Следующий пример оптимизированная версия предыдущего
4762
48-
print(friends)
63+
В friends будет записан тот же самый результат, что и в прошлом примере.
64+
method_one_param можно использовать, когда запрос идет к одному методу,
65+
и когда изменяется только один параметр. В данном случае это 'user_id'
4966
67+
Плюс не нужно вызывать .result для каждого ключа
68+
"""
5069
with vk_api.VkRequestsPool(vk_session) as pool:
51-
friends = pool.method('friends.get')
52-
status = pool.method('status.get')
70+
friends = pool.method_one_param(
71+
'friends.get', # Метод
72+
key='user_id', # Изменяющийся параметр
73+
values=[1, 183433824],
5374

54-
# Обратите внимание, что запрос выполняется после выхода из with
55-
# и к результатам обратиться можно только после выхода из него
75+
# Параметры, которые будут в каждом запросе
76+
default_values={'fields': 'photo'}
77+
)
5678

57-
print(friends)
58-
print(status)
79+
print(friends.result)
5980

6081
if __name__ == '__main__':
6182
main()

0 commit comments

Comments
 (0)