import asyncio
async def exc():
print(1 / 0)
async def main():
task = asyncio.create_task(exc())
try:
await asyncio.gather(task)
except ZeroDivisionError as ex:
print(f"Ошибка {ex} обработана")
asyncio.run(main())await, а остановиться только на их создании (task = asyncio.create_task(waste_time()), то вывод вообще будет таким: Start work...
Start work...
Start work...
Start work...
Start work...
Start work...
Start work...
Start work...
Start work...
Start work...
0.0021376609802246094 await asyncio.sleep(2)? старт?await, а остановиться только на их создании (task = asyncio.create_task(waste_time()), то вывод вообще будет таким:Start work...
Start work...
Start work...
Start work...
Start work...
Start work...
Start work...
Start work...
Start work...
Start work...
0.0021376609802246094await asyncio.sleep(2)?await?await asyncio.sleep(2) работает таким образом: sleep(), там она стопится, т.е. входит в состояние ожидания результата, контроль выполнения возвращается в функцию waste_time(), откуда и была вызвана sleep(), а оттуда обратно в main() и далее в цикле он продолжает делать то же самое (в waste_time() - в sleep() - обратно в waste_time() - обратно в main()). По прошествии 2 секунд, внутренний механизм asyncio мониторинга состояния корутин уведомляет событийный цикл, что первая корутина получила ответ (иначе говоря, завершила свою работу), событийный цикл после этого передает контроль выполнения обратно в функцию, откуда была вызвана первая корутина, т.е. в waste_time(),, она продолжает свое выполнение и выводит на печать "End work!". Сразу за ней событийный цикл получил такие же уведомления от остальных корутин (через механизм мониторинга, само собой), ибо они тоже закончили свое выполнение (все почти одновременно), и с ними повторяется такой же процесс. Поэтому после первой корутины мы также видим подряд вывод всех остальных - "End work!".await, в цикле в функции main(), из-за того что не находится в таске - не участвует в очереди, поэтому она просто встает в ожидание результата корутины, вместо того, чтобы переключится на другие.lang="python">yield from, модуль selectors, делегирующие генераторы и подгенераторы), потом библиотеку asyncio. Ощущение, будто я упускаю что-то очевидное.
Start work...
Start work...
Start work...
Start work...
Start work...
Start work...
Start work...
Start work...
Start work...
Start work...
старт
End work!
финиш
старт
End work!
финиш
старт
End work!
финиш
старт
End work!
финиш
старт
End work!
финиш
старт
End work!
финиш
старт
End work!
финиш
старт
End work!
финиш
старт
End work!
финиш
старт
End work!
финиш
2.0058696269989014 python3 manage.py makemigrations работает, а через django-admin makemigrations - нет, все те же ошибки. Это что такое? django.core.exceptions.ImproperlyConfigured, только меняются глобальные переменные, например:django.core.exceptions.ImproperlyConfigured: Requested setting USE_I18N, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.CACHES теперь USE_I18N migrate после создания начальной миграции с помощью makemigrations, тем самым создал зависимости в базе и просто так изменить или удалить запись django_content_type или django_migrations не получится.
data:image, но использовалxlink:hrefи у меня высвечивалось ошибка типа "invalid image source" вместо SVG. Но сейчас я использовал простоhrefи все заработало. Спасибо вам.Но вы говорите, что анимация работать не будет, тем не менее, здесь она работает - https://github.com/vaaski/vaaski/tree/master