我很高兴接受这可能是不可能的,更不用说明智的了,但是是否可以保留对我创建的对象的持久引用?
例如,在我的一些视图中,我的代码看起来有点像这样(为了清楚起见,进行了简化):
api = Webclient()
api.login(GPLAY_USER,GPLAY_PASS)
url = api.get_stream_urls(track.stream_id)[0]
client = mpd.MPDClient()
client.connect("localhost", 6600)
client.clear()
client.add(url)
client.play()
client.disconnect()
如果我可以只保留一个引用,那就太好了api
and client
在我的整个项目中,特别是为了避免重复 api 登录gmusicapi
。我可以在其中声明它们吗settings.py
? (我猜这是一个糟糕的主意),或者通过其他方式与他们保持持久的联系?
理想情况下我会有类似的功能get_api()
它将检查现有对象是否仍然正常并返回它或根据需要创建一个新对象。
您不能为每个应用程序实例化一次任何内容,因为您几乎肯定会拥有多个服务器进程,并且对象不容易在进程之间共享。然而,每个进程一个绝对是可能的,并且是值得的。为此,您只需在相关文件(例如views.py)的模块级别实例化它。这意味着当 Django 第一次导入该文件(在该过程中)时它将自动实例化,并且您可以将其作为该文件中的全局变量引用。只要进程存在,它就会持续存在,并且当创建新进程时,将实例化一个新的全局变量。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)