在Django中以编程方式同步数据库
我正在尝试从一个视图中同步我的数据库,类似这样:
from django import http
from django.core import management
def syncdb(request):
management.call_command('syncdb')
return http.HttpResponse('Database synced.')
问题是,这会在开发服务器上阻塞,因为它会在终端里要求用户输入。请问我该如何传递 '--noinput'
这个选项,以防止它问我任何问题?
我有其他方法来标记用户为超级用户,所以不需要用户输入,但我确实需要以编程的方式调用 syncdb
(和 flush
),而不通过 ssh 登录到服务器。任何帮助都非常感谢。
2 个回答
4
大概是这样的(至少在Django 1.1版本中):
from django.core.management.commands import syncdb
syncdb.Command().execute(noinput=True)
20
当然可以!请看下面的内容:
在编程中,有时候我们需要让程序做一些重复的事情。为了实现这个目标,我们可以使用“循环”。循环就像是一个指令,让程序不停地执行某个操作,直到满足特定条件为止。
比如说,如果你想让程序打印数字1到10,你可以用循环来实现,而不是一个个写出每个数字。这样不仅省事,还能让代码更简洁。
另外,循环有几种不同的类型,比如“for循环”和“while循环”。“for循环”通常用于知道要重复多少次的情况,而“while循环”则适合在不知道要重复多少次的情况下使用,只要条件满足就继续执行。
总之,循环是编程中非常重要的一个概念,它可以帮助我们更高效地完成任务。
management.call_command('syncdb', interactive=False)