代码之家  ›  专栏  ›  技术社区  ›  Peter Kronenberg

在Django中处理请求之前,如何在启动时运行函数?

  •  2
  • Peter Kronenberg  · 技术社区  · 2 周前

    我想在Django服务器启动时运行一些代码,以便清理服务器的前一端。如何在服务器处理任何请求之前,在启动时只运行一次代码。在此期间,我需要访问数据库。

    我在网上读到了一些东西,它们似乎有点过时,也不能保证只运行一次。

    1 回复  |  直到 2 周前
        1
  •  3
  •   willeM_ Van Onsem    2 周前

    这通常是通过 .ready() method [Django-doc] 的任何 AppConfig classes [Django-doc] 已安装应用程序的。所以,如果你有一个名为 app_name ,您可以使用:

    # app_name/apps.py
    
    from django.apps import AppConfig
    
    
    class MyAppConfig(AppConfig):
        # …
    
        def ready(self):
            # my management command
            # …

    这将运行 之后 所有的模型 INSTALLED_APPS 已加载,因此可以执行管理命令。这也经常用于将信号挂接到模型。