我正在尝试使用Django
ORM
和update()
函数更新SQLite3
DB中的记录。你知道吗
我可以看到,在我的独立脚本中运行update()
函数之后,数据库实际上已经更新了,但是在我重新启动gunicorn
之前,这些更改不会反映在我的网站上:
sudo systemctl restart gunicorn
我怀疑这个问题与我将模型导入独立脚本的方式有关。你知道吗
ROOT_DIR = /path/to/root/dir
sys.path.insert(0, ROOT_DIR)
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'AppName .settings')
import django
django.setup()
from main.models import Bet, Investment, Profile
from django.contrib.auth.models import User
Bet.objects.filter(id=4).update(revenue=10)
这段代码每天在我的服务器上运行一次。 我希望看到更新反映在我的网站上,而不必重新启动gunicorn。你知道吗
更多上下文:我正在同一个独立脚本中运行create()
函数,该脚本更新数据库并按预期反映在我的站点上,而无需重新启动gunicorn
。你知道吗
也许这不是您问题的直接答案,但是对于Django中的独立脚本,我建议使用custom management commands。这样可以避免设置和环境变量。你知道吗
例如,您可以编写一个脚本
main/management/commands/my_script_1.py
(阅读文档,了解它为什么会出现在那里):然后可以像这样调用脚本(在linux中):
或者,如果您的代码位于虚拟环境中,但希望将脚本调用为
cron
作业:相关问题 更多 >
编程相关推荐