Django项目加载额外执行文件

今天在使用django项目时,有一个文件需要在django项目启动之后进行运行,尝试以下两种方式:
方式一:
在项目settings.py同一目录下将要使用的python文件内容写入__init__.py文件,示例如下:
__init__.py内容:

import requests
url = 'http://www.baidu.com'
resp = requests.get(url=url)
print(resp.status_code)

但是注意,此时django项目是不加载任何app内容的,我们不可以在__init__.py引用app中的函数或者模型类,如下方式是会报错的:

from user.models import User
user_rec = User.objects.all()

错误信息如下:
django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.

方式二:
在项目settings.py同一目录下的urls.py中写入你的python执行内容,示例如下:

from django.urls import path
urlpatterns = [
    path('admin/', admin.site.urls),
]

import requests
url = 'http://www.baidu.com'
resp = requests.get(url=url)
print(resp.status_code)

from user.models import User
user_rec = User.objects.all()

该种方式是在django项目加载之后进行路由配置的,并且app已经被加载,此时引用app中的内容是不会产生错误的。

你可能感兴趣的:(Django项目加载额外执行文件)