这可能是一个noOb问题。
是否可以将全局实例定义为:
# testing.py
class Test(object):
def do_something(self):
etc....
test = Test()
...这样我就可以导入“test”(即:来自测试导入测试)并使用它。即:
test.do_something()
...每次发出请求时都不必在视图中每次都实例化它。即:
def MyView(View):
def get(self , request, *args, **kwargs):
test = Test()
test.do_something()
return HttpResponse('testing')
我也不想把它放在一个基本处理程序中(通过调用self.test.do_something()),我想在任何视图中,通过“test”对任何请求进行完全访问。任何模块等...
我想简单地说:
def MyView(View):
def get(self , request, *args, **kwargs):
test.do_something()
return HttpResponse('testing')
对于这种情况,这是最好的方法吗?感谢您的任何建议。
答案 0 :(得分:0)
这取决于您的对象是否存储状态。如果是这样,您应该意识到该状态将持续跨越请求。如果存储的东西像数据库连接一样通用,那可能没问题。但是,如果它与请求或用户有任何关联,那么您将在请求之间获得数据泄漏,这是一件非常糟糕的事情。
另一方面,如果你没有存储状态,你可能不希望它成为一个类:只需使do_something
成为一个独立的函数并将其导入到你需要的任何地方。