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

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

时间:2024-05-14 17:42:25浏览次数:21  
标签:数据库 django ready MyAppConfig myapp 某个 执行 方法

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

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

标签:数据库,django,ready,MyAppConfig,myapp,某个,执行,方法
From: https://www.cnblogs.com/yclh/p/18191820

相关文章

  • openGauss 示例2-从MY向openGauss数据库进行数据迁移
    示例2:从MY迁移数据下面示例演示如何通过CopyManager从MY向openGauss进行数据迁移的过程。importjava.io.StringReader;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;i......
  • Django RESTful API设计与实践指南
    title:DjangoRESTfulAPI设计与实践指南date:2024/5/1415:37:45updated:2024/5/1415:37:45categories:后端开发tags:DjangoRESTAPI设计版本控制安全认证性能优化部署策略实战项目第1章:Django基础知识1.1Django简介:Django是一个使用Python语言开发......
  • linux安装华为高斯数据库
     华为安装部署流程:https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/2.23.07.210/install/qlh_04_0025.html高斯数据库文档说明书下载:https://support.huawei.com/enterprise/zh/cloud-computing/gaussdb-pid-251517148https://www.modb.pro/db/11248用docker快速安装:https:/......
  • [转帖]国产数据库中统计信息自动更新机制
    https://blog.csdn.net/solihawk/article/details/137064277数据库中统计信息描述的数据库中表和索引的大小数以及数据分布状况,统计信息的准确性对优化器选择执行计划时具有重要的参考意义。本文简要整理了下传统数据库和国产数据库中统计信息的自动更新机制,以加深了解。......
  • 数据库升级PostgreSql+Garnet
    目录前言PostgreSql安装测试额外Nuget安装Person.cs模拟运行Navicate连postgresql解决方案Garnet为什么要选择Garnet而不是RedisRedis不再开源Windows版的Redis是由微软维护的WindowsRedis版本老旧,后续可能不再更新Garnet性能强于Redis安装测试安装可视化工具C#代码连接测试总结......
  • [转帖]国产主流数据库存储类型简析
    https://blog.csdn.net/solihawk/article/details/137807944国产数据库在技术架构上主要分为集中式、基于中间件分布式和原生分布式架构,衍生出集中式架构和分布式架构。那么在这些部署架构中,从数据分布的视角来看,在数据库中数据分布的形态是怎样的。本文将简要分析OceanBas......
  • flink监控数据库表
    背景在日常服务运行中可能会遇到很多数据上的问题,一些我们可以通过日志查询,但是一些修改等操作日志无法查询到,binlog日志不方便查询而且不是所有表都需要日志,增加了查询的难度,我们考虑使用canal或者flink对binlog进行记录,这里flink,flink程序和客户端版本1.17.1pom.xml<?xm......
  • mongodb数据库:手动释放磁盘空间
    平台:阿里云mongoDB云数据库版本:Mongodb4.2数据库集群方案:一主二从三分片需求:手动释放过剩磁盘空间从文档解析可知:delete数据或者做分片数据迁移,并不会释放磁盘空间,而是将这些空间标记为reuse可重用状态,后续新写入的数据会重用这部分空间。需求是手动释放这些空间,使用compact......
  • 【django学习-22】列表界面搜索功能
    1.需求:靓号列表界面,根据手机号码模糊匹配2.前端传search_data<divstyle="float:right;width:300px;"><formmethod="get"><divclass="input-group"><inputtype="text"name="q"clas......
  • 【django学习-21】ModelForm方式,自定义数据校验
    前言:我们在使用ModelForm新增数据时,除了使用默认的数据校验之外,还可以自定义数据校验例如:有个靓号的列表,新增/编辑校验1.代码示例1.1:modles.pyclassPrettyNum(models.Model):"""靓号表"""mobile=models.CharField(verbose_name="手机号",max_length=11)......