[英]Running a python commands from a python script in a python (Django) shell. Django
我正在使用Django,並創建了兩個數據庫。 一切似乎都可以正常工作,但是然后我不得不編輯兩者之一並添加一列。.從那一刻起,數據庫就不再工作了,所以我在文本文件中導出了第一個數據庫,並想“現在我重新創建了兩個db並運行python腳本以填充第一個”。 問題在於,當我嘗試運行腳本時會出錯,因為我無法使用os.system運行bash之類的命令,而且我真的不知道其他任何方式。因此,這是我的代碼:
import os
def func ():
try:
FILE=open ("./languagedb.txt", "r")
except IOError:
print 'Can\'t open db file'
exit (1)
for line in FILE:
if (line.startswith('INSERT')):
values=line[43:-1]
language=values[1:3]
values=values[6:]
field=""
fieldBool=True
i=0
while fieldBool:
try:
c=values[i]
except:
print ''
if c != '\'':
field=field+str(c)
i=i+1
else:
fieldBool=False
values=values [(i+3):]
text=""
textBool=True
i=0
while textBool:
try:
c=values[i]
except:
print ''
if c != '\'':
text=text+str(c)
i=i+1
else:
textBool=False
comand="Language.objects.create(language=\""+language+"\", text=\""+text+"\", campo=\""+field+"\")"
os.system(comand)
這就是我調用shell的方式:
python manage.py shell
以及我給它的命令:
import django
from languageMods.models import *
import mymigration #The name fo the file containing the above code
mymigration.func()
我得到以下錯誤,例如
sh: -c: line 0: syntax error near unexpected token `language="en",'
這是殼牌的錯誤。 有人知道如何從python shell中的python腳本執行命令嗎?
如果按照描述方式啟動腳本,則可以直接在代碼中直接調用django DB API:
Language.objects.create(language=language, text=text, campo=field)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.