Django应用启动时如何初始化添加数据?只需要简单的三步
程序员文章站
2022-12-04 21:01:36
需求: 希望在运行项目前进行一些数据初始化,包括但不限于一些全局变量、数据库等。实现方法:很简单,只需要三步(1)确保app被注册到settings文件中的install_apps中:(2)在该app的__init__文件中设定default_app_config:default_app_config = 'apps.home.apps.HomeConfig'(3)在该app的apps文件中,继承AppConfig类;重写name属性,重写ready方法;其中na......
需求: 希望在运行项目前进行一些数据初始化,包括但不限于一些全局变量、数据库等。
实现方法:很简单,只需要三步
(1)确保app被注册到settings文件中的install_apps中:
(2)在该app的__init__文件中设定default_app_config:
default_app_config = 'apps.home.apps.HomeConfig'
(3)在该app的apps文件中,继承AppConfig类;重写name属性,重写ready方法;其中name属性必须与注册的app名一致;ready方法中写入你的初始化行为逻辑代码即可。
from django.apps import AppConfig
class HomeConfig(AppConfig):
name = "apps.Home"
def ready(self):
pass
(4) 执行python manage.py runserver 即可看到ready方法被调用;
注意的点:有些同学可能会发现ready方法被调用了两次,这是因为你使用了python manage.py runserver该运行方式启动项目,这种方式会启动两个进程,其中一个进程用于监听用户修改代码后重新启动,但在真实环境中使用uwsgi启动项目则只会调用一次ready方法。如果你不愿意启动两个进程,也可以使用 python manage.py runserver --noreload 启动项目 --noreload关闭监听代码修改重启程序的意思。
本文地址:https://blog.csdn.net/weixin_40647516/article/details/108235626