Django创建的SQLite数据库在哪里?
我正在做Django教程中的settings.py文件,但我对NAME字段该填什么感到困惑。我想使用SQLite,所以我理解的是我不需要创建任何东西,数据库会自动创建,对吗?如果是这样的话,它会在哪里创建,名字会是什么?
我尝试运行manage.py syncdb,结果出现了这个错误:
"django.core.exceptions.ImproperlyConfigured: 请在使用数据库之前在设置模块中填写数据库的NAME。"
所以我猜我应该填写NAME字段,但这和我在下面的说明中理解的并不一样:
https://docs.djangoproject.com/en/1.3/intro/tutorial01/
NAME -- 你的数据库名称。如果你使用的是SQLite,数据库会是你电脑上的一个文件;在这种情况下,NAME应该是这个文件的完整绝对路径,包括文件名。如果这个文件不存在,当你第一次同步数据库时,它会自动创建(见下文)。
3 个回答
根据实际的文档(2015年1月):
NAME – 这是你的数据库的名字。如果你使用的是SQLite,那么数据库就是你电脑上的一个文件;在这种情况下,NAME应该是这个文件的完整路径,包括文件名。默认值是
os.path.join(BASE_DIR, 'db.sqlite3')
,这会把文件存储在你的项目目录里。
按照文档的写法,我建议把 Name
设置为 os.path.join(BASE_DIR, 'db.sqlite3')
。当然,你需要先定义 BASE_DIR
。
首先,你需要创建一个 .db 文件,或者在你的电脑上安装 sqlite。接着,创建一个数据库文件,并在 settings.py 文件中找到 NAME 这一项,把它指向你刚创建的数据库文件。例如,在 Linux 系统上,我的路径是 '/home/username/project/chatdb'。如果你使用的是 Windows 系统,那么路径应该是 'C:/homes/user/mysite/sqlite3.db'。
根据文档的说明,它会在你设置的NAME
位置创建SQLite3数据库文件。Django不会自己猜,而是会使用你在这里指定的文件路径。
只有当你使用其他数据库而不是SQLite时,NAME
才会是数据库服务器上实际的数据库名称。