[英]Why is a Django sqlite db file getting wiped out by a Python script?
我已经浏览了很多有关此问题的问题,还没有找到适合我特殊情况的解决方案。 我目前面临的问题是,当我尝试save()从Python脚本插入新行时,我的sqlite db文件被清除了。 然而,使用从我的Django的应用程序之一相同的步骤时,这种情况不会发生。
为了将我的Django模型与下面未提及的外部Python脚本一起使用,是否需要进行一些其他设置?
在Python脚本中,我已经在文件顶部添加了以下内容:
sys.path.append(my_project_path)
os.environ['DJANGO_SETTINGS_MODULE']='settings'
from django.conf import settings
我还仔细检查了以下项目:
这是我看到的行为:
在使用其他Python脚本的Django模型时,我还缺少什么吗? 我正在使用此脚本作为一些手动更新的工具,并且确实希望它能够正常工作。
这是我的设置的快速示例:
目录:
myproject/
myproject/myapp/
myproject/tools/
Django模型位于myproject / myapp /中,脚本位于myproject / tools /中。 PYTHONPATH包含myproject /。 在脚本中,我具有以下内容:
import os
import sys
sys.path.append(absolute_path_to_myproject)
os.environ['DJANGO_SETTINGS_MODULE']='settings'
from django.conf import settings
import myapp.models
my_model = myapp.models.my_model(name = 'TestName')
my_model.save()
您没有足够详细的设置,但是听起来有更好的方法。
Django已经为您管理数据库连接,因此无需处理实际的sqlite文件。 只需使用“ python manage.py my_script”在django会话中运行脚本即可。 这是这样做的方法: https : //docs.djangoproject.com/en/dev/howto/custom-management-commands/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.