Не всегда так просто импортировать библиотеки, в основном из-за времени жизни процесса.Например, если вы запускаете Django через CGI с 1 запросом на процесс, то ваш TCP-сервер не будет работать между представлениями.Точно так же, если вы используете несколько процессов для обработки запросов (например, с помощью FastCGI), тогда у вас будет несколько серверов, работающих одновременно.
Если вы хотите, чтобы постоянные сетевые подключения работали независимо от времени жизни запроса, выВам нужно будет запустить сервер TCP во внешнем (демоническом) процессе.Это стандартная процедура для некоторых схем кэширования, где все ваши процессы Django совместно используют кэшированные данные с помощью одного демона (например, Redis).
В основном у вас есть два подхода.
Глобальное соединение
Либо установите соединение для каждого процесса Django (если у вас их более одного) в качестве глобального объекта и перенаправьте запросы на него с вашей точки зрения.Это наиболее удобно, если ваш TCP-сервер закодирован для обработки нескольких запросов на соединение.Однако у вас могут возникнуть проблемы, если ваш процесс Django является многопоточным.
Соединение на запрос
Если ваш TCP-сервер может принимать несколько кратковременных соединений, это также жизнеспособный подход.Просто откройте соединение на всю жизнь вашего зрения.Если этот объект используется достаточно часто, вы даже можете добавить часть промежуточного программного обеспечения, которое открывает соединение и сохраняет его в объекте запроса.