好的,我记得有一些命令可以放在settings.py
文件中,这样基本上当你将django项目移动到另一个目录时,它就不会被foo-bar'd了。
我知道我可以通过在提到主目录的任何地方都有一个字符串变量来做到这一点但是有更优雅的方法吗?
答案 0 :(得分:84)
Django项目的架构
根/
Inside settings.py:
SITE_ROOT = os.path.dirname(os.path.realpath(__file__))
- >给出文件settings.py: root / main / 的路径。这不是项目的根本
PROJECT_PATH = os.path.abspath(os.path.dirname(__name__))
- >给出了项目的根目录: root / 。这是项目的根本。
答案 1 :(得分:42)
Django 1.8已将项目根目录包含为BASE_DIR
:
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
您可以通过导入settings
:
from django.conf import settings
...
...
print(settings.BASE_DIR)
答案 2 :(得分:39)
抓住__file__
全球,并使用os.path
中的各种功能。
import os.path
SITE_ROOT = os.path.dirname(os.path.realpath(__file__))
答案 3 :(得分:12)
PROJECT_PATH = os.path.abspath(os.path.dirname(__name__))