django启动时执行某个操作数据库的方法怎么实现

为了让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相关的,这里写这么个方法有点不搭,但需求可以实现。

有没有大神知道这个需求比较理想的解决方法应该怎么操作。

posted @ 2024-05-14 17:33  万笑佛  阅读(145)  评论(0编辑  收藏  举报