我正在使用 django 运行服务器程序,我想在服务器运行之前和之后运行一些代码。我可以把这些代码放在哪里?
<run function a here>
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
^C
<run function b here>
Run Code Online (Sandbox Code Playgroud)
我尝试过print('hello')in app/__init__.py,但发现它运行了两次。为什么?
我确实认为运行 Django 应用程序或类似的应用程序不是一个好主意runserver。所以你的问题可以是“如何优雅地退出 Django 应用程序”。
通常我们在生产环境中使用 Djangogunicorn或类似的 WSGI 应用程序运行 Django。你不会知道它何时以及如何退出。
所以我们可以捕获信号SIG_INT并SIG_TERM优雅地退出。例如
import signal
def quit_gracefully():
print('quit')
signal.signal(signal.SIGINT, quit_gracefully)
signal.signal(signal.SIGTERM, quit_gracefully)
Run Code Online (Sandbox Code Playgroud)
参考此文档: https: //docs.python.org/3/library/signal.html
| 归档时间: |
|
| 查看次数: |
2040 次 |
| 最近记录: |