python - 如何在 Django 中使用 pathlib.Path?
问题描述
我正在使用 pathlib.Path 作为 os.path 的替代品,并且我正在尝试将它用于 django 项目中的目录路径,但是我尝试创建迁移多少,就会发生错误:
"return database_name == ': memory:' or 'mode = memory' in database_name
TypeError: argument of type 'PosixPath' is not iterable "
我的基本目录:
BASE_DIR = Path(__file__).parent.parent.parent
数据库连接:
BASE_DIR.joinpath('db.sqlite3')
解决方案
pathlib.Path
s 不是字符串(或字节)。大多数内部 Django 代码都使用这些os.path
函数,而这些函数需要字符串/字节,而需要字符串的代码(就像它看起来database_name
所期望的那样)不能与pathlib.Path
对象一起使用——您需要将其转换为字符串(即。str(BASE_DIR.joinpath('db.sqlite3')
可以编写一个作为 的子类的 Path 类str
,这使得与期望字符串的代码的交互更加透明(许多人已经创建了这样的类,包括我:https ://github.com/datakortet/dkfileutils/blob/master/ dkfileutils/path.py)。
推荐阅读
- c# - 如何在 UWP 应用程序中创建一个窗口以输入详细/属性信息
- python - 需要帮助在 Python 中绘制这个分段线性插值代码
- ansible - Ansible 模块停止和启动 `ssh` 服务
- git - git bisect 后恢复
- visual-studio-code - 更好的 vscode yaml 组高亮可能吗?
- regression - LightGBM 回归器的置信区间
- node.js - 'mongodump' 不是内部或外部命令、可运行程序或批处理文件
- java - Spring @Repository @Document 不是必需的吗?
- webrtc - h.264的延迟超过800ms,而vp9的延迟接近500ms
- c++ - 在 Windows 10 上使用 Eclipse C/C++ IDE 2020-06 的 SDL 测试项目构建失败错误消息