服务器启动时执行的内容与请求进入时的执行情况相同?

int*_*tar 3 django

我一直在Django做一些黑客攻击.我从settings.py调用我的更改,因为我认为此操作先于其他任何操作.

但是,我刚刚遇到这种情况,这对我不起作用.那么, settings.py 之后还有另一个地方,我可以保证在服务器开始处理任何请求之前它总是会运行吗?

Car*_*yer 6

你永远不应该把代码放在settings.py需要从Django的任何部分导入任何东西的代码中.由于Django的许多部分都需要设置可用,因此很可能会导致循环导入问题.

在提供任何请求之前,您的ROOT_URLCONF(urls.py)是放置您希望为每个服务器Python进程运行一次的项目级代码的合理位置.

如果代码特定于特定应用程序(并且仅在该应用程序正在使用时才需要),那么您可以将其放入该应用程序models.py__init__.py.

有关该问题的更广泛的了解,请参阅此博客文章.