stark组件前戏之项目启动前加载指定文件


"""
1. Django项目启动时,自定制执行某个py文件
    Django启动时,且在读取项目中 路由加载 之前执行某个py文件
    在任意app的apps.py中的Config类中定义ready方法,并调用autodiscover_modules
        from django.apps import AppConfig
        from django.utils.module_loading import autodiscover_modules


        class App01Config(AppConfig):
            default_auto_field = 'django.db.models.BigAutoField'
            name = 'app01'

            def ready(self):
                autodiscover_modules("xxx")
    Django在启动时,就会去已注册的所有app的目录下找xxx.py文件并自动导入(app01和app02均已注册)
    如果执行两次,是因为Django内部自动重启导致,取消执行两次的方式:
        方式一:python manage.py runserver 127.0.0.1:8001 --noreload
        方式二:Edit Configurations中的Additional options添加--noreload
    提示:
        如果xxx.py执行的代码向'某个神奇的地方'放入了一些值,之后的路由加载时,可以去'某个神奇的地方'读取到原来设置的值
"""

app01/apps.py

from django.apps import AppConfig
from django.utils.module_loading import autodiscover_modules


class App01Config(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'app01'

    def ready(self):
        autodiscover_modules("xxx")

app01/xxx.py

print("app01目录下的xxx.py")

app02/xxx.py

print("app02目录下的xxx.py")

启动项目后:

 打印不会出现两次的配置:

 项目目录: