TL; DR:
Я запускаю сервер Django с соединением TCP-сокета . Мне нужно внедрить экземпляр TCP-соединения в обработчики REST API, чтобы выполнить действия. Я не могу понять, КАК разделить память между Django и другим моим кодом.
Я работаю на сервере REST Django.
В urls.py
я определил do_something
обработчик API:
urlpatterns = [
path('admin/', admin.site.urls),
path('something/', do_something)
]
в manage.py
: Для упрощения я использовал name
вместо tcp_connection
и его лог c.
name = None
@api_view(["GET"])
def do_something(request):
print("name", name) # prints None. Expected {"value": "lala"}
return Response(None, status.HTTP_200_OK)
def main():
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'api.settings')
global name
name = {
"value": "lala"
}
execute_from_command_line(sys.argv)
if __name__ == '__main__':
print(f'Initiating')
main()
Мысли
Поскольку я новичок в python, это может быть глупо. Похоже, что он работает в другом process
и, следовательно, нет shared memory
. Если это правильно, как я могу ввести object instance
, который нужен обработчику?
Спасибо!