1. 程式人生 > >(django)5settings基本配置項

(django)5settings基本配置項

目錄

BASE_DIR

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

BASE_DIR為當前專案的絕對路徑

DEBUG

DEBUG = True

是否開啟debug模式

ROOT_URLCONF

專案的url配置檔案目錄,如下

ROOT_URLCONF = 'django_project.urls'

DATABASES

資料庫的配置項,預設為Python自帶的sqllite3

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

可以自己配置為mysql等,例

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django',
        'USER':'root',
        'PASSWORD':'',
        'HOST':'localhost',
        'PORT':'3306'
    }
}

國際化

LANGUAGE_CODE = 'zh-hans'

TIME_ZONE = 'Asia/Shanghai'

前邊已經提到,不在多敘述

靜態檔案

專案中的CSS、圖片、js都是靜態檔案。一般會將靜態檔案放到一個單獨的目錄中,以方便管理。在html頁面中呼叫時,也需要指定靜態檔案的路徑,Django中提供了一種解析的方式配置靜態檔案路徑。靜態檔案可以放在專案根目錄下,也可以放在應用的目錄下,由於有些靜態檔案在專案中是通用的,所以一般放在專案的根目錄下,方便管理。

  • STATIC_URL 訪問靜態檔案的URL字首

  • STATICFILES_DIRS 存放查詢靜態檔案的目錄

訪問靜態檔案示例

settings.py 檔案下新增程式碼

STATIC_URL = '/static/'

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
]

制定訪問url為 /static/ ,存放目錄為專案根目錄下的 static 資料夾。

在專案根目錄下新建資料夾 static

此時 static 目錄下的任何靜態檔案就可以通過下邊方式來訪問

網址+/static/+檔案在static目錄下的存放路徑
  • django僅在 DEBUG=True 的時候可以對外部提供靜態檔案訪問的功能。

ALLOWED_HOSTS

ALLOWED_HOSTS是一個字串列表,代表了這個Django網站可以服務的主機名或域名。這是為了阻止HTTP Host頭攻擊而採用的一種安全措施。

這個列表中的值,可以是全名(比如: 'www.baidu.com'), 在這種情況下,它們會直接與所要求的Host頭進行匹配(大小寫不區分,不包括埠號)。

如果一個值以點號開始,則可當做一個子域名萬用字元:'.baidu.com'會匹配'baidu.com', 'www.baidu.com', 以及baidu.com的其它任意子域名。如果有'*'這個值,那麼它會匹配任何字串,在這種情況下,你就需要提供你自己的Host頭驗證機制。

配置格式如下:

ALLOWED_HOSTS = [
    '.baid.com', 
    '.baidu.com.',
  • DEBUG設定為False的時候必須配置這個配置.否則會丟擲異常。

TEMPLATES

EMPLATES項指定了django如何載入和渲染模板

APP_DIRS項被設定為了True,代表django會在每個app目錄內尋找templates子目錄,所以不需要我們進行DIRS的設定。而如果templates要放在其他資料夾下,則需要設定DIRS項

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

INSTALLED_APPS

NSTALLED_APPS項儲存了工程中已經註冊安裝的子應用

註冊安裝一個子應用的方法,即是將子應用的配置資訊檔案apps.py中的Config類新增到INSTALLED_APPS列表中。

例如,將剛建立的users子應用新增到工程中,可在INSTALLED_APPS列表中新增 demo.apps.UsersConfig

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'demo.apps.DemoConfig'
]

MIDDLEWARE

web應用中需要載入的一些中介軟體列表.是一個一元陣列.裡面是django自帶的或者定製的中介軟體包路徑,如下

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]