在Django中,如何从初始化脚本中调用子命令“ syncdb”?
我是python和django的新手,在阅读Django
Book时,我了解了有关命令python manage.py
syncdb的信息,该命令为我生成了数据库表。在开发环境中,我在内存数据库中使用sqlite,因此每次重新启动服务器时都会自动删除它。那么我该如何编写这个’syncdb’命令的脚本呢(应该在’settings.py’文件中完成吗?)
澄清说明
OP正在使用内存数据库,该数据库需要在使用针对该数据库定义的Django模型的任何过程的开始时进行初始化。确保数据库初始化(每次启动一次)的最佳方法是什么。这将用于通过manage.py
runserver
或通过Web服务器进程(例如WSGI或mod_python)运行测试或运行服务器。
-
可以通过编程方式访问所有Django管理命令:
from django.core.management import call_command call_command('syncdb', interactive=True)
理想情况下,您应使用预初始化信号
runserver
将其激活,但是这种信号不存在。因此,实际上,如果您是我,我将要处理的方式是创建一个自定义管理命令(例如)runserver_newdb
,并在其中执行此命令:from django.core.management import call_command call_command('syncdb', interactive=True) call_command('runserver')
有关编写定制管理命令的更多信息,请参见文档。