【问题标题】:Django proper way to save global API client instance variableDjango保存全局API客户端实例变量的正确方法
【发布时间】:2019-11-07 17:39:09
【问题描述】:
如何存储一些 API 客户端实例并使其在整个项目中可用。
API client instance - 是一些AppApi(),我需要在整个 django 项目的不同视图(甚至应用程序)中调用它的方法。
就我而言,有两种方法:
- 在一些核心 django 应用
core/apps.py 模块中创建一个全局变量;
- 创建单例包装器;
在这种情况下最好和正确的方法是什么?
【问题讨论】:
标签:
python
django
design-patterns
singleton
【解决方案1】:
看看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.