我想为我的 django 项目使用依赖注入。为此,我正在尝试pinject包。就像在 ASP.NET 中一样,所有依赖项都在构造函数中给出,这非常好,因为它很容易测试。我也想在我的 django 项目中存档类似的东西。
我有一个简单的视图:
class MySimpleView(View):
def __init__(self, dependency1, dependency2, **kwargs):
super().__init__(**kwargs)
...
我定义绑定的地方
# di.py
class AppBindingSpec(pinject.BindingSpec):
def configure(self, bind):
# do the bindings here
obj_graph = pinject.new_object_graph(binding_specs=[AppBindingSpec()])
我希望像这样使用它。
# urls.py
urlpatterns = [
path('path/to/my/view', obj_graph.provide(MySimpleView).as_view()),
]
但不幸的是,django 不允许.as_view()从实例中调用 。
有什么简单的方法可以将依赖项注入到我的视图中,以便我可以轻松地模拟和测试?
凤凰求蛊
相关分类