170 похожих чатов

Всем привет. Господа, использую aiohttp для того чтоб написать свой

простенький web-server. При чтении документации увидел возможность хранить глобальные переменные в Application.

При изменении переменных выскакивает ошибка:
DeprecationWarning: Changing state of started or joined application is deprecated

Есть ли те, кто может подсказать что можно в этой ситуации сделать? (P.S: Могу забить, ибо все и так работает, но хотелось бы узнать все-таки вариант, который будет считаться правильным решением)

16 ответов

27 просмотров

зачем ты пытаешься хранить глобальные переменные?

Alex-Hlurry Автор вопроса
Alex
зачем ты пытаешься хранить глобальные переменные?

Связь с БД + хранение Клиентской сессии, ибо иногда надо обработать свой запрос и послать в другую часть планеты

Alex-Hlurry Автор вопроса
Alex
а как ты открываешь соединение с БД ?

Какой там сайт, чтоб свой код залить? Pastebin же?

Alex-Hlurry Автор вопроса

https://pastebin.com/aNfd4r2y

Alex-Hlurry Автор вопроса
Alex
pastebin.com

Исходя из доки, можно получить app из request'a на сервер. А из app уже получить нужные переменные

Alex Hlurry
https://pastebin.com/aNfd4r2y

вообще страннно и по идее этот код не должен бы выдавать эту ошибку. вот тут похоже релевантное обсуждение этой проблемы https://github.com/aio-libs/aiohttp/issues/4326

Alex-Hlurry Автор вопроса
Alex
вообще страннно и по идее этот код не должен бы вы...

Да, читал ее, но на всякий случай спросил в чате. Может есть какое-то другое решение, которое я просто не вижу. Спасибо за помощь, тогда забью на нее просто

Alex Hlurry
Да, читал ее, но на всякий случай спросил в чате. ...

а если создавать как они предлагают в cleanup context, то предупреждение тоже выбрасывается? https://docs.aiohttp.org/en/stable/web_advanced.html#cleanup-context

Alex-Hlurry Автор вопроса
Alex
а если создавать как они предлагают в cleanup cont...

Пока не пробовал. Но у меня не с БД проблема, а с ClientSession

Alex Hlurry
Пока не пробовал. Но у меня не с БД проблема, а с ...

что такое ClientSession и где конкретно вываливается это предупреждение?

Alex-Hlurry Автор вопроса
Alex
что такое ClientSession и где конкретно вываливает...

ClientSession - сессия, которая должна отправлять запросы на другой сервер. В доке написано, что идеальный вариант такой: async with ClientSession() as session: #code here Но у них еще написано, что лучше не создавать каждый раз новую сессию для одного запроса. К сожалению, у меня будет выходить один запрос на сессию. Вываливается предупреждение тут: if request.app.get('client').closed: request.app['client'] = ClientSession()

Alex Hlurry
ClientSession - сессия, которая должна отправлять ...

а, это aiohttp-шная сессия. if request.app.get('client').closed: request.app['client'] = ClientSession() так, а где ты этот код вызываешь?

Alex-Hlurry Автор вопроса
Alex Hlurry
https://pastebin.com/nFDzEm7x

так а зачем этот код вообще нужен?

Похожие вопросы

Обсуждают сегодня

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Чтобы перехватить все нажимания буков на форме, надо хук ставить? Пробовал на форме ОнКейДаун, оно ловит клаву если фокус не на компоненте с вводом текста
Serjone
15
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
Всем привет! вывожу на общей стр дочерние ресурсыв каждом ресурсе галерея, и первая фотка должна выводиться на общей [!DocLister? &prepare=photo !]
Alekso
12
А можно вопрос? Мне сегодня сказали что у меня функция (которая просто заполняет массив значениями) не правильная void Full(double * arr, int n) { for (int i = 0; i < n; i...
† C E †
7
День добрый, подскажите пожалуйста, есть ли какой-то способ сказать ребару не компилировать определённое приложение? Всю доку их перечиатл ничего подобного не нашёл
Кирилл
14
Добрый вечер. Хочу чтобы у меня в классе поле было функцией, которая возвращает строку. Делаю так: interface ... TGetOutPath = function : String of object; ... protec...
Kirill Filippenok
12
Народ! Впервые клиенту пришло письмо от РКН, у вас, дескать, есть яндекс метрика, а нигде не написано, что вы ее юзаете. Никто не сталкивался?
Sasha Beep
10
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Здравствуйте, хочу сделать HelloWorld в консоли Дельфи, но функция API ничего не выводит, что я делаю не так? program Hello; {$APPTYPE CONSOLE} uses System.SysUtils, WinAPI.Wi...
Sergey Vinogradov
20
Карта сайта