django.setup() 的目的是什么?

7

我正在更新以前雇主的网站,以下代码有些问题。

在以下代码中,django.setup()的目的是什么? 需要把下面的代码放在init.py文件中吗?

from __future__ import absolute_import, unicode_literals
import os
import django
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "sparrow.settings")
django.setup()

1
谢谢,但是“standalone”是什么意思? - Moon
1个回答

6

如果您在独立运行Django应用程序,则需要使用它。它将加载您的设置并填充Django的应用程序注册表。您可以在Django的文档中阅读详细信息。

如文档所述,django.setup() 只能被调用一次。因此,如果您在代码方面遇到问题,可以尝试将代码修改为以下格式:

from __future__ import absolute_import, unicode_literals
import os
import django
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "app_name.settings")
if __name__ == '__main__':
   django.setup()

2
什么是独立运行? - Moon
你可以独立运行组件(Django应用程序)。 - Imaduddin A Majid
1
是的,但问题在于我没有在这里独立运行它,而且上述代码是我的 Django 网站的一部分,并包含在应用程序的 init.py 文件中。 - Moon
是的,这可能会导致问题。因此,我建议您修改代码,避免多次调用django.setup(),而是在if块下调用它。 - Imaduddin A Majid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接