在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数据库。
我该怎么做呢?
但是当我在python
a={'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',
}
}