首頁 > 軟體

django settings.py組態檔的詳細介紹

2022-04-15 16:00:18

組態檔如下,下面對組態檔進行一一解釋

"""
Django settings for film1_manager project.

Generated by 'django-admin startproject' using Django 2.2.

For more information on this file, see
https://docs.djangoproject.com/en/2.2/topics/settings/

For the full list of settings and their values, see
https://docs.djangoproject.com/en/2.2/ref/settings/
"""

import os

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
#BASE_DIR=film_manager

# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/2.2/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = '^-fz_k8_eam%axnvh3@tqd7wjbzfx31*ac3e40ue^)jyaopb2n'

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

ALLOWED_HOSTS = []


# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'film'
]

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',
]

#專案根路由
ROOT_URLCONF = 'film1_manager.urls'

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR,'templates')],
        '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',
            ],
        },
    },
]

WSGI_APPLICATION = 'film1_manager.wsgi.application'


# Database
# https://docs.djangoproject.com/en/2.2/ref/settings/#databases

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

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'filmdatabase',
        'USER': 'zilv',
        'PASSWORD': '123456',
        'HOST': '127.0.0.1',
        'PORT': '3306',
    }
}


# Password validation
# https://docs.djangoproject.com/en/2.2/ref/settings/#auth-password-validators

AUTH_PASSWORD_VALIDATORS = [
    {
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    },
]


# Internationalization
# https://docs.djangoproject.com/en/2.2/topics/i18n/

LANGUAGE_CODE = 'zh-Hans'

TIME_ZONE = 'Asia/Shanghai'

USE_I18N = True

USE_L10N = True

USE_TZ = True


# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/2.2/howto/static-files/

STATIC_URL = '/static/'
STATICFILES_DIRS=[
    os.path.join(BASE_DIR,'static')
]

1. settings.py檔案介紹 下面對 settings.py 組態檔涉及到的知識點進行依次講解: 1) BASE_DIR 它用於繫結當前專案 BookStore 所在的絕對路徑,專案中的所有的檔案都需要依賴此路徑,繫結路徑的方法如下: 

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

__file__是 Python 的語法,顯示當前檔案的位置,os.path.abspath(__file__) 方法返回當前檔案的絕對路徑。 

2) SECRET_KEY 這個變數的本質是一個加密的鹽,它一般配合加密演演算法 Hash、MD5 一起使用。例如使用者密碼的加密或者建立對談時用到的 sessionid 都需要用到 SECRET_KEY 。在實際的開發工作中,一般將它儲存在系統的環境變數中以確保加密鹽的安全。 

3) DEBUG 用於設定 Django 專案的啟用模式,有兩種取值方式: DEBUG = True用於在開發環境中使用,屬於偵錯模式,在專案的執行過程中會暴露一些錯誤資訊以方便偵錯。 DEBUG = False用於線上環境,表示不啟用偵錯模式。 

4) ALLOWED_HOSTS 用於設定能夠存取當前站點的域名(IP地址),當 DEBUG = False 時,必須填寫,有以下三種使用方法: [],空列表,表示只有1217.0.0.1,localhost能存取本專案; [’*’],表示任何網路地址都能存取到當前專案; [‘192.168.1.3’, ‘192.168.3.3’] 表示只有當前兩個主機能存取當前專案。 

提示:如果是在區域網,讓其它主機也能存取此站點,應使用 ALLOWED_HOSTS=['*'] 的方式。

5) INSTALLED_APPS 這個引數是指當前專案中用來安裝的應用(APP)的列表,Django 把預設自帶的應用放在這個列表裡,比如 Admin 後臺應用、Auth 使用者管理系統等,前面我們也對這兩個模組做了相應的介紹,在 Django 中把它們稱之為“應用”。 

我們可以根據自己的專案需求對其進行增加或刪除,比如公司要單獨開發一個後臺管理系統,就可以把第一項 admin 註釋掉。開發時自己編寫的應用都必須在這個變數表中進行註冊才能生效。所以這個列表需要經常的改動。 

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

6) MIDDLEWARE 它用於註冊中介軟體,我們在《Django中間》中進行了介紹,Django 預設載入了一些中介軟體。例如,用於處理對談的 SessionMiddleware 等,同樣我們可以對這些中介軟體進行新增或者註釋。 

7) ROOT_URLCONF 

ROOT_URLCONF = 'hanhua.urls'

它指定了當前專案的根 URL,是 Django 路由系統的入口。 8) TEMPLATES 它用於指定模板的設定資訊,列表中每一元素都是一個字典。如下所示是 Django 預設自帶模板引擎: 

{'BACKEND':'django.template.backends.django.DjangoTemplates'

9) WSGI_APPLICATION 

WSGI_APPLICATION = 'hanhua.wsgi.application'

專案部署時,Django 的內建伺服器將使用的 WSGI 應用程式物件的完整 Python 路徑。 

10) DATABASES 

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

它用於指定資料庫設定資訊,這裡預設設定的是 Django 自帶的 sqllite3 資料庫。Django 支援多種資料庫,在這個字典變數中更改資料庫設定。在後續章節我們將對 Mysql 資料庫設定進行講解。 

11) AUTH_PASSWORD_VALIDATORS 這是一個支援插拔的密碼驗證器,且可以一次性設定多個,Django 通過這些內建元件來避免使用者設定的密碼等級不足的問題。 

AUTH_PASSWORD_VALIDATORS = [
    {
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    },
]

12) LANGUAGE_CODE和TIME_ZONE 分別代表語言設定項和當前伺服器端時區的設定項,我們常用的設定如下所示: LANGUAGE_CODE 取值是英文:'en-us'或者中文:'zh-Hans'; TIME_ZONE 取值是世界時區 'UTC' 或中國時區 'Asia/Shanghai'。 

13) USE_118N和USE_L10N 專案開發完成後,可以選擇向不同國家的使用者提供服務,那麼就需要支援國際化和在地化。USE_118N 和 USE_L10N 這兩個變數值表示是否需要開啟國際化和在地化功能。預設開啟的狀態。 

提示:USE_I18N = True 與 USE_L10N = True 其的 I18N 指的是國際化英文縮寫,L10N 指的是在地化英文縮寫。

14) USE_TZ=True 它指對時區的處理方式,當設定為 True 的時候,儲存到資料庫的時間是世界時間 'UTC'。 

15) STATIC_URL= '/static/' 它指的是靜態資源的存放位置,靜態資源包括 CSS、JS、Images。比如我們要在專案中新增一些圖片,通常這些靜態圖片被存放在新建的 static 目錄下,這樣就實現了通過 STATIC_URL= ‘/static/’ 路徑對靜態資源的存取。

到此這篇關於django settings.py組態檔的詳細介紹的文章就介紹到這了,更多相關django settings.py設定內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com