在Django中,如何从初始化脚本中调用子命令“ syncdb”?

发布于 2021-01-29 18:16:53

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

澄清说明

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

关注者
0
被浏览
49
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    可以通过编程方式访问所有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')
    

    有关编写定制管理命令的更多信息,请参见文档



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看