django数据库路径:没有不支持的操作数类型



在django settings.py中,数据库默认为:

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}

但是当我在pythona={'a':'a'/'b'}中这样做时,我得到错误TypeError:不支持的操作数类型(s)用于/:'str'和'str'。为什么这个错误没有显示在django中?

我想为我的数据库定义一个不同的路径,在子文件夹中,以便django自动创建子文件夹和sqlite数据库。

我该怎么做呢?

但是当我在pythona={'a':'a'/'b'}中做时,我得到错误TypeError: unsupported operand type(s) for /: 'str' and 'str'。为什么这个错误没有显示在django中?

因为BASE_DIR不是str,而是Path对象<一口>[Python-doc] 吃饭。对于这个对象,已经定义了__div__方法,因此它使用some_path / 'foo.sqlite3'将左侧的路径与右侧的字符串连接起来。事实上,例如:

>>> Path('/etc') / 'foo' / 'bar.data'
PosixPath('/etc/foo/bar.data')

我想为我的数据库定义一个不同的路径,在子文件夹中,以便django自动创建子文件夹和sqlite数据库…我该怎么做呢?

您可以指定一个不同的路径,例如:

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME':BASE_DIR / 'subdir' / 'db.sqlite3',
}
}

最新更新