gpt4 book ai didi

django 全局对象实例可访问性

转载 作者:行者123 更新时间:2023-12-05 06:45:46 25 4
gpt4 key购买 nike

这可能是一个菜鸟问题。

这样定义全局实例是否可以:

# testing.py
class Test(object):
def do_something(self):
etc....

test = Test()

...这样我就可以导入“test”(即:from testing import test)并使用它。即:

   test.do_something()

...无需在每次发出请求时都在 View 中实例化它。即:

       def MyView(View):
def get(self , request, *args, **kwargs):
test = Test()
test.do_something()
return HttpResponse('testing')

我也不想将它放在基本处理程序中(通过调用 self.test.do_something()),我想通过“测试”使其完全可访问任何请求,在任何 View 中,在任何模块等...

我只想拥有:

   def MyView(View):
def get(self , request, *args, **kwargs):
test.do_something()
return HttpResponse('testing')

对于这种情况,这是最好的方法吗?感谢您的任何建议。

最佳答案

这取决于你的对象是否存储状态。如果是这样,您应该意识到该状态将跨请求持续存在。这可能没问题,如果它存储的是通用的东西,比如数据库连接。但是,如果它以任何方式与请求或用户相关,您将在请求之间泄漏数据,这是一件非常糟糕的事情。

另一方面,如果您不存储状态,您可能不希望它成为一个类:只需将 do_something 设为独立函数并在需要的任何地方导入它即可。

关于django 全局对象实例可访问性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21520980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com