Django 시작 시 단일 실행 코드 실행
Django 애플리케이션을 개발할 때 특정 코드를 실행해야 하는 경우가 있을 수 있습니다. 일반적으로 초기화 목적으로 시작하는 동안 한 번만 수행됩니다. 그러나 이 목표를 위해 미들웨어 클래스를 사용하면 Django 미들웨어 시스템이 요청할 때마다 각 미들웨어의 __init__() 메서드를 호출하므로 여러 번 실행될 수 있습니다.
Django의 Django 솔루션 < 1.7
Django 1.7 이전 버전에서 이 문제를 해결하기 위한 한 가지 효과적인 접근 방식은 INSTALLED_APPS 중 하나의 __init__.py 파일 내에 시작 코드를 배치하는 것입니다. 예를 들어, myapp 애플리케이션에서는 myapp/__init__.py에 다음 코드를 포함할 수 있습니다.
<code class="python">def startup(): pass # Place your startup code here startup()</code>
이 접근 방식을 사용하면 Django 시작 중에 start() 함수가 실행되고 이후에 다시 호출되지 않습니다. 후속 요청을 통해 원하는 일회성 실행을 제공합니다.
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 시작 시 코드를 한 번 실행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!