django项目启动时,自定义执行某个py文件

在任意的app下的apps.py中的Config类下自定义ready()方法,并且调用autodiscover_modules。

app01/apps.py

1 from django.apps import AppConfig
2 from django.utils.module_loading import autodiscover_modules
3 
4 
5 class App01Config(AppConfig):
6     name = 'app01'
7 
8     def ready(self):
9         autodiscover_modules('xxx.py')

app02/apps.py

1 from django.apps import AppConfig
2 from django.utils.module_loading import autodiscover_modules
3 
4 class App02Config(AppConfig):
5     name = 'app02'
6 
7     def ready(self):
8         autodiscover_modules('xxx.py')

 为了验证我们在urls.py打印一句话

1 from django.contrib import admin
2 from django.urls import path
3 
4 print('路由开始加载')
5 urlpatterns = [
6     path('admin/', admin.site.urls),
7 ]

 

 然后分别在两个项目目录下新建xxx.py文件,代码如下

1 # app01/xxx.py
2 print('app01下的xxx.py')
3 
4 # app02/xxx.py
5 print('app02下的xxx.py')

 

一切都准备好了,开始运行吧。

效果图已经说明我们自定义执行某个py文件成功了。

注意:为什么会执行两遍呢?因为WiMAX的django是默认重启的。会自动检测我们的代码是否改动。

如果不想看到,执行的时候命令:python manage.py runserver –noreload

 

版权声明:本文为xjmlove原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/xjmlove/p/10087053.html