python - django 中项目主管的路径

标签 python django

这是我的项目树:

projectname
    projectname
        init.py
        settings.py
        urls.py
        wsgi.py
    appname
        init.py
        admin.py
        models.py
        test.py
        views.py
        urls.py
    templates
        base.html
        login.html

现在在 settings.py 中我使用这段代码:

TEMPLATE_DIRS = (
    os.path.join(os.path.dirname(BASE_DIR), "projectname", "templates"),
    )

STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), "projectname", "static", "static-only")
MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), "projectname", "static", "media")

如何获取项目目录的路径,这样我就不需要在代码中输入项目名称 projectname 并在任何其他 django 项目中使用该代码?

更新

或者我可以只用这个吗

BASE_DIR+'/templates'
BASE_DIR+'/static/media'

或者这是个坏主意?

最佳答案

我建议您使用 os.path.abspath :

# Project root is intended to be used when building paths,
# e.g. ``os.path.join(PROJECT_ROOT, 'relative/path')``.
PROJECT_ROOT = os.path.abspath(os.path.dirname(__name__))

# Absolute path to the directory where ``collectstatic``
# will collect static files for deployment.
#
# For more information on ``STATIC_ROOT``, visit
# https://docs.djangoproject.com/en/1.8/ref/settings/#static-root
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static/')

# Absolute path to the directory that will hold uploaded files.
#
# For more information on ``MEDIA_ROOT``, visit
# https://docs.djangoproject.com/en/1.8/ref/settings/#media-root
MEDIA_ROOT = os.path.join(PROJECT_ROOT, 'uploads/')

关于python - django 中项目主管的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32120020/

相关文章:

python - 使用 Python 将 NetCDF 文件转换为 CSV 或文本

python - Django 的单例架构是否使其无法作为库中的独立 ORM 工作?

django - 实现自动建议功能(不是自动完成)

python - 害怕 "not the same object error" pickle 一个 queryset.query 对象

python - Django - 当我扩展 index.html 时,我没有得到变量

python - Python 的 super() 如何处理多重继承?

python - 如何在python中过滤json数组

python - 使用 Qt Designer 和 PyQt/PySide 进行 MVC 设计

python - Django 模型继承架构的正确实现?

Django Channels/Daphne 内部服务器错误 "' dict' 对象不可调用”