我 train 了一个 model,想在 django 的 web 应用加载之前先 import 之前的这些代码(这些代码比较耗时),想请问一下 django 可以做到先执行一个代码吗?(不想每次 get 到请求再都去执行那一段)
我 train 了一个 model,想在 django 的 web 应用加载之前先 import 之前的这些代码(这些代码比较耗时),想请问一下 django 可以做到先执行一个代码吗?(不想每次 get 到请求再都去执行那一段)
1
ohazyi OP 就是可不可以在 run 这个 server 的时候就先执行某一段代码呢?
|
2
petelin Feb 25, 2019 via iPhone 两种方法一种 对你来说简单点 另创建一个接口 init 用来跑初始化 然后全局变量共享给 get
还有就是再代码里控制什么时候 start server |
3
petelin Feb 25, 2019 via iPhone
还有一种是 Django 应该有 before start 这种钩子函数 也可以
|
4
zyqzyq08 Feb 25, 2019 via Android
ready
|
5
rogwan Feb 25, 2019 via Android
是不是应该反过来考虑,先启动加载这个 model,完了之后再 run django ?
|
8
Seahurt Feb 25, 2019 via Android
gunicorn 里有一些 server hook 函数可用
|
9
applehater Feb 25, 2019
@petelin 这种会重复启动两个进程的
|
10
KgM4gLtF0shViDH3 Feb 26, 2019 via iPhone
以前写 py 的时候记得 django 有个 command 什么的
|
11
petelin Feb 26, 2019 via iPhone
@applehater 那种?
|
12
37Y37 Feb 26, 2019
Django signals,看一下 connection_created 数据库建立连接时触发,这里有文章介绍:
https://mp.weixin.qq.com/s/cMxdAfsTno56ixurmD4KXA |
13
metamask Feb 26, 2019
实例化之后,直接 import 到 view 层
|
14
midasplus Feb 26, 2019
|
15
qqxx520 Feb 26, 2019 |
17
applehater Feb 26, 2019 via iPhone
@petelin 就是直接在模块 init 方法启动,开发模式会启动两次的,其他 uwsgi 就会几个进程启动几次了
|