我正在用 Django 构建一个 API,我想查询 Github GraphQL API,我发现了这个 GraphQL client适合我需要的python。
但是现在,我想知道,在我的 Django 应用程序中初始化这样一个客户端的正确位置在哪里?在请求里面?在apps.py 中?在views.py中?任何指导方针将不胜感激!这是我当前的 Django 项目文件夹结构:
.
├── LICENSE
├── README.md
├── api
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ ├── urls.py
│ └── views.py
├── db.sqlite3
├── manage.py
├── portfolio
│ ├── __init__.py
│ ├── asgi.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── requirements.txt
└── setup.py
提前致谢!
最佳答案
TLDR : 实例化 View 方法中的新客户端权限 = 每个请求的新客户端。 (不错的选择 - 覆盖 initial
查看方法)。以后改进。
这取决于。
如果客户端没有请求/用户选项(= 客户端是 相同的 对于每个请求/用户):
如果有请求/用户特定选项(即客户端需要有
request.user
特定选项/凭据):选项 1 - 每个工作人员 View 实例化一次客户端。尽管它提供了一些性能优势,但它们是微妙而模糊的:
实际上,您可能希望使用当前的
request.user
连接到 github特定选项,执行多个请求(= cookie 可能涉及并在后续请求中自动添加 => 客户端不能与多个用户共享)= 每个用户至少有单独的客户端。
关于python - 在 Django 应用程序中初始化 GraphQL 客户端的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62386986/