Django 启动时执行一次代码
创建自定义 Django 中间件类时,通常只需要在启动时执行一次代码。但是,使用 sdolan 概述的标准方法可能会导致所需的代码被执行两次。
解决方案
对于 Django 版本 1.7,确保代码只执行一次及以上,利用 Django 提供的新钩子。在应用程序的 apps.py 文件中:
<code class="python">from django.apps import AppConfig class MyAppConfig(AppConfig): name = 'myapp' verbose_name = "My Application" def ready(self): pass # Your startup code here</code>
对于 1.7 之前的 Django 版本,将启动代码放在 INSTALLED_APPS 的任意一个 __init__.py 文件中:
<code class="python">def startup(): pass # Load a big thing startup()</code>
当使用./manage.py runserver,由于服务器验证,此代码将执行两次。但是,在生产部署或自动服务器重新加载期间,代码只会执行一次。
以上是如何在 Django 启动时只执行一次代码?的详细内容。更多信息请关注PHP中文网其他相关文章!