ホームページ  >  記事  >  バックエンド開発  >  Django の起動時にコードを 1 回実行するにはどうすればよいですか?

Django の起動時にコードを 1 回実行するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-01 20:13:02685ブラウズ

How to Execute Code Once at Django Startup?

Django 起動時に実行する単一実行コードの取得

Django アプリケーションを開発する場合、特定のコードを実行する必要がある場合があります。起動時に 1 回のみ (通常は初期化目的)。ただし、この目的でミドルウェア クラスを使用すると、Django ミドルウェア システムがリクエストのたびに各ミドルウェアの __init__() メソッドを呼び出すため、複数の実行が発生する可能性があります。

Django の Django ソリューション < 1.7

1.7 より前のバージョンの Django でこの問題に対処するには、INSTALLED_APPS の 1 つの __init__.py ファイル内にスタートアップ コードを配置することが効果的な方法の 1 つです。たとえば、myapp アプリケーションでは、myapp/__init__.py に次のコードを含めることができます。

<code class="python">def startup():
    pass # Place your startup code here

startup()</code>

このアプローチにより、startup() 関数が Django の起動中に実行され、Django の起動時に再び呼び出されないようになります。

Django 1.7 以降向けの改善されたソリューション

Django バージョン 1.7 では、この要件に対してより洗練されたソリューションが導入されました。アプリケーションの apps.py ファイル内で ready() メソッドを使用して AppConfig クラスを実装すると、アプリケーションが準備完了としてマークされたときに実行されるコードを指定できます。 myapp アプリケーションを使用した例を次に示します。

<code class="python"># myapp/apps.py
from django.apps import AppConfig
class MyAppConfig(AppConfig):
    name = 'myapp'
    verbose_name = "My Application"
    def ready(self):
        pass # Place your startup code here</code>

このアプローチにより、スタートアップ コードをより自然に定義して実行できるようになり、Django 1.7 以降で推奨されるソリューションです。

以上がDjango の起動時にコードを 1 回実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。