我注意到项目中使用的 Django 延迟加载模块。当我第一次在本地机器上调试服务器,然后从站点加载页面时,调试器告诉我 Django 刚刚导入了一百多个模块。
我希望 Django 在启动时导入所有模块,而不是等待第一个请求。这将使我的开发更加方便,因为我不必在每个第一个请求上等待更多时间。
这可能吗?
我最终只是在我的 manage.py 中添加了这样的部分,就在该execute_from_command_line
行之前:
argv_string = ' '.join(sys.argv)
if ('gunicorn' in argv_string) or ('runserver' in argv_string):
import all_my_stuff
它看起来像这个库:https ://github.com/ojii/django-load ,它相当简单,具有从 Django 中加载模块的功能。如果您将该技术与 Django 入口点挂钩(如http://eldarion.com/blog/2013/02/14/entry-point-hook-django-projects/)结合起来,您应该能够显式加载您的模块在启动时。(我自己没有尝试过,但看起来可行。)