为了让django启动时就执行某些方法做了如下尝试
一、在Django中,可以通过AppConfig
类的ready()
方法来实现在Django启动时执行某个方法。
首先,在你的应用的apps.py
文件中,创建一个继承自AppConfig
类的子类,并重写ready()
方法。例如,假设你的应用名为myapp
,则可以创建一个MyAppConfig
类:
from django.apps import AppConfig
class MyAppConfig(AppConfig):
name = 'myapp'
def ready(self):
# 在这里编写你要执行的方法
print('django 启动后执行!')
然后,在你的应用的__init__.py
文件中,设置default_app_config
变量为MyAppConfig
类的路径(例如myapp.apps.MyAppConfig
):
default_app_config = 'myapp.apps.MyAppConfig'
当Django启动时,ready()
方法会被自动调用,从而执行你编写的方法。
输出语句确实可以在项目启动时执行,但执行了两次而且,把在要执行的方法里编写ORM层对数据库的操作会报错,说模块没加载完,所以该方法满足我们的需求。
二、在urls.py文件里写方法
在urls.py文件里写ORM层对数据库的操作可以实现但是感觉 有点怪,这个文件本来是处理url相关的,这里写这么个方法有点不搭,但需求可以实现。
有没有大神知道这个需求比较理想的解决方法应该怎么操作。