如何让Django中的syncdb自动运行?
当我有一个可以上传文件的界面时,我希望把这个文件存储到数据库里。要做到这一点,我需要运行一个叫做syncdb的命令。不过到目前为止,我只知道怎么在Python命令行里手动运行python manage.py syncdb。那我该怎么做才能在我上传数据的时候让它自动运行呢?
4 个回答
1
每次上传文件都调用 syncdb
本身就是不对的,不过我还是来回答你的问题。要在代码里调用 syncdb
的话,可以这样做:
from django.core.management.commands.syncdb import Command as SyncDbCommand
SyncDbCommand().handle_noargs()
1
你可以随时调用
os.system('python /path/manage.py syncdb')
这应该会运行你的同步数据库的过程,不过,我觉得有更好的方法可以解决这个问题,而根本不需要使用同步数据库。
哦,对了,你需要使用一个标志,这样它会对所有问题回答“是”。
3
这是一种稍微有点小技巧的方法:
import sys
sys.argv.append('syncdb')
from django.core.management import execute_manager
import settings # Your project's settings. Assumed to be in the same directory.
execute_manager(settings)