Django内存中的SQLite3数据库
我想在Django中使用一个完全在内存中的SQLite数据库,我觉得我已经搞定了,除了一个烦人的问题:
在使用这个数据库之前,我需要先运行 syncdb
,这倒不是太大的问题。问题是,它需要创建一个超级用户(我想是在 auth_user
表里),而这需要我输入一些信息。
对我来说,我并不想这样——我只想在内存中创建这个数据库,密码我也不在乎,因为我就是唯一的用户。:) 我只想在某个地方写死一个密码,但我不知道怎么通过代码来实现。
有什么好主意吗?
3 个回答
1
你可能需要使用“固定数据”:
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
,并且设置你想要的密码。