我已經看過這個問題上的很多問題,並沒有找到我的具體情況的解決方案。我目前面臨的問題是,當我嘗試從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