首页 > 解决方案 > 在这个 django settings.py python 列表中正斜杠做什么?

问题描述

我是 python 新手,我不明白这个正斜杠在 django settings.py 中是如何工作的

STATICFILES_DIRS = [
    BASE_DIR / "static",
]

看起来它正在连接 BASE_DIR + "static" 的值,但这实际上是 str(BASE_DIR) + "static" 正确的吗?

它是某种特殊的 Django 分隔符吗?

这是根据 Django 文档的正确用法: https ://docs.djangoproject.com/en/3.1/howto/static-files/#configuring-static-files

STATICFILES_DIRS 不是参数列表 - 所以这似乎不适用 https://docs.python.org/3/faq/programming.html#what-does-the-slash-in-the-parameter-list-of -a-function-mean

它不是二元除法运算符: https ://docs.python.org/3/reference/expressions.html#binary

标签: pythondjango

解决方案


可能BASE_DIR是一个pathlib.Path对象。是/路径组件连接运算符。

>>> from pathlib import Path
>>> BASE_DIR = Path('/tmp')
>>> BASE_DIR / 'foo' / 'bar'
PosixPath('/tmp/foo/bar')
>>> str(BASE_DIR / 'foo' / 'bar')
'/tmp/foo/bar'

推荐阅读