Django правильный способ сохранить глобальную переменную экземпляра клиента API - PullRequest
0 голосов
/ 07 ноября 2019

Как сохранить некоторый экземпляр клиента API и сделать его доступным для всего проекта.

API client instance - это примерно AppApi(), и мне нужно вызывать его методы в разных представлениях (и даже приложениях) изВесь проект django.

На мой взгляд, есть два способа:

  1. создать глобальную переменную в каком-то основном модуле приложения django core/apps.py;
  2. создать синглтонобертка;

Какой лучший и правильный способ сделать в этом случае?

1 Ответ

1 голос
/ 07 ноября 2019

Посмотрите на django.db.connections, django.db.router, django.contrib.staticfiles.storage.staticfiles_storage, и там есть еще несколько. По сути, вы создаете переменную модуля, которая имеет экземпляр вашего синглтон-класса, а затем импортируете эту переменную:

from django.db import connections

vendor = connections['default'].vendor  # always the same during app lifetime.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...