官术网_书友最值得收藏!

Defining relative paths in the settings

Django requires you to define different file paths in the settings, such as the root of your media, the root of your static files, the path to templates, the path to translation files, and so on. For each developer of your project, the paths may differ as the virtual environment can be set up anywhere and the user might be working on Mac OS X, Linux, or Windows. Anyway, there is a way to define these paths that are relative to your Django project directory.

Getting ready

To start with, open settings.py.

How to do it…

Modify your path-related settings accordingly instead of hardcoding the paths to your local directories, as follows:

# settings.py
# -*- coding: UTF-8 -*-
from __future__ import unicode_literals
import os

BASE_DIR = os.path.abspath(
    os.path.join(os.path.dirname(__file__), "..")
)

MEDIA_ROOT = os.path.join(BASE_DIR, "myproject", "media")

STATIC_ROOT = os.path.join(BASE_DIR, "myproject", "static")

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "myproject", "site_static"),
)

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

LOCALE_PATHS = (
    os.path.join(BASE_DIR, "locale"),
)

FILE_UPLOAD_TEMP_DIR = os.path.join(
    BASE_DIR, "myproject", "tmp"
)

How it works…

At first, we define BASE_DIR, which is an absolute path to one level higher than the settings.py file. Then, we set all the paths relative to BASE_DIR using the os.path.join function.

See also

  • The Including external dependencies in your project recipe
主站蜘蛛池模板: 雷州市| 清水河县| 方城县| 新巴尔虎左旗| 阿克陶县| 鹰潭市| 定安县| 宝兴县| 忻州市| 尚志市| 大连市| 巴林左旗| 隆化县| 平果县| 吕梁市| 波密县| 合川市| 饶河县| 石泉县| 赤水市| 鄢陵县| 马龙县| 天长市| 会东县| 衢州市| 广宁县| 阿克苏市| 南陵县| 萨迦县| 佳木斯市| 衡阳市| 龙门县| 翁源县| 巴中市| 仁怀市| 当雄县| 汉阴县| 弥渡县| 乡宁县| 昭苏县| 丹东市|