python - 在 django 中,如何从初始化脚本中调用子命令 'syncdb'?

标签 python django in-memory-database django-syncdb

我是 python 和 django 的新手,在关注 Django Book 时我了解了为我生成数据库表的命令“python manage.py syncdb”。在开发环境中,我在内存数据库中使用 sqlite,所以每次我重新启动服务器时它都会自动删除。那么如何编写这个“syncdb”命令的脚本呢?(应该在“settings.py”文件中完成吗?)

澄清

OP 正在使用内存数据库,该数据库需要在使用针对该数据库定义的 Django 模型的任何进程开始时进行初始化。确保数据库初始化(每个进程启动一次)的最佳方法是什么。这将用于运行测试或运行服务器,通过 manage.py runserver 或通过网络服务器进程(例如使用 WSGI 或 mod_python)。

最佳答案

所有 Django 管理命令 can be accessed programmatically :

from django.core.management import call_command
call_command('syncdb', interactive=True)

理想情况下,您会在 runserver 上使用预初始化信号来激活它,但是这样的信号 doesn't exist .所以,实际上,如果我是你,我的处理方式是创建一个自定义管理命令,如 runserver_newdb,并在其中执行:

from django.core.management import call_command
call_command('syncdb', interactive=True)
call_command('runserver')

the documentation有关编写自定义管理命令的更多信息。

关于python - 在 django 中,如何从初始化脚本中调用子命令 'syncdb'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3495964/

相关文章:

linux - 如何使用 Redis 中的值与结果一详细信息之间的比较?

python - 如何使用 APIView 设置每个处理函数的权限?

apache-spark - Tachyon 默认情况下是否由 Apache Spark 中的 RDD 实现?

python - 用于创建 AbstractUser 扩展模型的 Django 管理表单

python - PyFilesystem 可以被迫使文件系统成为单例吗?

django 1.8 测试模型和迁移

python - 哪些库用于在 Python 中对复杂问卷进行建模?

database - 是否有支持计算列的内存数据库?

python - 无法与 Python 2.7 进行交互调试

python - 你如何解决 pyinstaller for scipy 中的 'hidden imports not found!' 警告?