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