开发必备知识点--django项目启动时,url加载之前,执行某个.py文件

django项目启动时,自定义执行某个py文件

在任意的app下的apps.py中的Config类下自定义ready()方法,并且调用autodiscover_modules。

app01/apps.py

1 from django.apps import AppConfig
2 from django.utils.module_loading import autodiscover_modules
3
4
5 class App01Config(AppConfig):
6     name = ‘app01‘
7
8     def ready(self):
9         autodiscover_modules(‘xxx.py‘)

app02/apps.py

1 from django.apps import AppConfig
2 from django.utils.module_loading import autodiscover_modules
3
4 class App02Config(AppConfig):
5     name = ‘app02‘
6
7     def ready(self):
8         autodiscover_modules(‘xxx.py‘)

为了验证我们在urls.py打印一句话

1 from django.contrib import admin
2 from django.urls import path
3
4 print(‘路由开始加载‘)
5 urlpatterns = [
6     path(‘admin/‘, admin.site.urls),
7 ]

然后分别在两个项目目录下新建xxx.py文件,代码如下

1 # app01/xxx.py
2 print(‘app01下的xxx.py‘)
3
4 # app02/xxx.py
5 print(‘app02下的xxx.py‘)

一切都准备好了,开始运行吧。

效果图已经说明我们自定义执行某个py文件成功了。

注意:为什么会执行两遍呢?因为WiMAX的django是默认重启的。会自动检测我们的代码是否改动。

如果不想看到,执行的时候命令:python manage.py runserver --noreload

原文地址:https://www.cnblogs.com/xjmlove/p/10087053.html

时间: 2024-10-10 19:30:48

开发必备知识点--django项目启动时,url加载之前,执行某个.py文件的相关文章

基于spring的web项目启动时预加载数据到ServletContext

1.要在web启动时预加载数据到ServletContext,实现方法有很多,一种比较简单的方案就是: 1)新建一个bean,定义其初始化方法: <bean id="beanId" init-method="初始化方法" />或者使用@PostConstruct注解到初始化方法上面 2)获取ServletContext实例对象,如何获取呢? 方法1: @Autowired private ServletContext application; 方法2:

1.Spring项目启动时,加载相关初始化配置

Spring项目启动时,会加载一些常用的配置: 1.加载spring上下文 SpringApplicationContextUtils.initApplicationContext(event.getServletContext()); 2.加载属性文件 EsbCommsUtils.initComms(event.getServletContext()); 1 public class EsbCommsUtils { 2 3 private static Log logger = LogFact

java web项目启动时自动加载自定义properties文件

首先创建一个类 public class ContextInitListener implements ServletContextListener 使得该类成为一个监听器.用于监听整个容器生命周期的,主要是初始化和销毁的. 类创建后要在web.xml配置文件中增加一个简单的监听器配置,即刚才我们定义的类. Xml代码 <listener> <!-- lang: xml --> <description>ServletContextListener</descri

Tomcat启动时自动加载Servlet

1.想做一个服务启动时自动启动一不停止的获取订阅功能 2.之前是做一个Jsp页面请求servlet来触发方法 3.现在实现Tomcat启动时自动加载Servlet 1.Tomcat中启动Servlet时,只需要在Servlet所在的工程的配置文件web.xml中写成如下即可 <!-- 自动启动订阅接口 --> <servlet> <servlet-name>TimeServlet</servlet-name> <servlet-class>ser

胖客户端启动时自动加载

修改配置文件 <!-- 系统启动时自动加载--> <extension point="org.eclipse.ui.startup"> <startup class="xxxxx.ReminderAction"/> </extension> 创建加载的类 public class ReminderAction implements IStartup { @Override public void earlyStartu

如何在tomcat启动时自动加载一个类

有时候在开发web应用的时候,需要tomcat启动后自动加载一个用户的类,执行一些初始化方法,如从数据库中加载业务字典到内存中,因此需要在tomcat启动时就自动加载一个类,或运行一个类的方法. 可以采用在WEB-INF/web.xml中添加一个监听程序(ServletContextListener配置项),步骤如下:1) 增加一个监听程序 MyServletContextListener.java, 实现javax.servlet.ServletContextListener接口 packag

Tomcat启动时选择加载项目

到tomcat\conf\Catalina\localhost下新建文件:myapp.xml 内容如下: <Context path="/myapp" docBase="D:/myapp" reloadable="true"> </Context> 这样你就可以用.xml文件来控制要启动的应用了 可以在tomcat\conf\Catalina\localhost下再建个bak目录 把暂时不用的应用的.xml文件放到里边 因

iOSAPP启动时实现加载广告

现在很多APP在启动的时候都在加载广告,现在也很流行,主要是盈利啊.笔者也做了很多关于广告的事情.现在记录下自己在APP启动的时候,怎么加载广告的. 下面总结下广告加载的三种方式 1.现在很多APP的广告不是在程序启动的时候开始请求广告的,而是直接加载广告的图片链接.可以在程序启动完后给个特定的时间去请求广告,并缓存到数据库.广告平台也是建议这样做的,可以节省用户的打开程序的时间.但是这种方法是有缺点的,就是广告的时常,一般的广告的平台都是55分钟左右展示是有效的.(如果有自己的广告商,还是建议

tomcat启动时自动加载一个类&#160;MyServletContextListener

目的: 我们知道在tomcat启动后,需要页面请求进行驱动来执行操作接而响应.我们希望在tomcat启动的时候能够自动运行一个后台线程,以处理我们需要的一些操作.因此需要tomcat启动时就自动加载一个类,或运行一个类的方法. 可以采用ServletContextListener. 方法: (1)编写一个监听类,实现javax.servlet.ServletContextListener接口. 1 import javax.servlet.ServletContextEvent; 2 impor