我已经看过这个问题上的很多问题,并没有找到我的具体情况的解决方案。我目前面临的问题是,当我尝试从Python脚本中保存()以插入新行时,我的sqlite数据库文件正在被删除。但是,从我的一个Django应用程序使用相同的步骤时,不会发生这种情况。为什么Django sqlite数据库文件被Python脚本擦除?
是否有一些额外的设置需要使用我的Django模型工作以及下面未提及的外部Python脚本?
在Python脚本我已经添加了以下到文件的顶部:
我也双重检查下列项目:
- 我的设置模块有数据库名称的绝对路径。
- 当我RM数据库文件,并运行python manage.py syncdb表I 愿望被创建;在此 初始化之后,DB文件大小大约为50k。
这是我看到的行为:
- 运行第2项以上后,我可以成功地从我的Django应用程序创建我的表中的新行。
- 运行上面的第2项之后,当从Python脚本使用Django模型时,我收到一个DatabaseError,指出“没有这样的表”。另外,当发生这种情况时,sqlite数据库文件会变为零大小。
有没有什么我能够从另一个Python脚本中使用Django模型?我使用这个脚本作为一些手动更新的工具,并且真的想让它工作。
这是我设置的一个简单的例子:
目录:
myproject/
myproject/myapp/
myproject/tools/
Django的模型所在的myproject/MYAPP /和脚本驻留在的myproject /工具/。 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()
原来,这个问题是由于环境中的其他内容破坏了文件并且与代码无关。 – Hazok