Django内存中的SQLite3数据库

1 投票
3 回答
1287 浏览
提问于 2025-04-16 20:57

我想在Django中使用一个完全在内存中的SQLite数据库,我觉得我已经搞定了,除了一个烦人的问题:

在使用这个数据库之前,我需要先运行 syncdb,这倒不是太大的问题。问题是,它需要创建一个超级用户(我想是在 auth_user 表里),而这需要我输入一些信息

对我来说,我并不想这样——我只想在内存中创建这个数据库,密码我也不在乎,因为我就是唯一的用户。:) 我只想在某个地方写死一个密码,但我不知道怎么通过代码来实现。

有什么好主意吗?

3 个回答

1

你可能需要使用“固定数据”:

https://docs.djangoproject.com/en/1.3/howto/initial-data/

6

在使用django-admin.py时,可以通过--noinput这个选项来屏蔽所有的输入提示,比如说:

./manage.py syncdb --noinput

这样做会跳过在初次运行syncdb时创建超级用户的步骤,因此你需要通过其他方式来创建一个超级用户,比如使用数据文件或者自定义方法来处理post_syncdb信号。

详细内容可以查看Django文档中的django-admin.py和manage.py

--noinput

使用这个--noinput选项可以屏蔽所有用户提示,比如“你确定吗?”这样的确认信息。如果你在运行django-admin.py时不想有人干预,比如在自动化脚本中,这个选项就特别有用。

3

django.contrib.auth.management.create_superuser 这个功能从 post_syncdb 信号中断开,然后连接你自己写的一个函数,这个函数可以创建并保存一个新的超级用户 User,并且设置你想要的密码。

撰写回答