python基礎教程:Django框架的中的setting.py文件說明詳解

這篇文章主要介紹了Django框架的中的setting.py文件說明詳解,這個文件包含了所有有關這個Django項目的配置信息,具有一定的參考價值,感興趣的小夥伴們可以參考一下
1.加載數據庫,數據庫的配置不能寫死在seting.py文件中,下面的方式是讀取另外一個文件,配置數據庫:

config = ''
with open(os.path.join(BASE_DIR, 'config/config.json'), 'rt') as f:
  config = json.load(f)
  
DATABASES = {
  'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': 'szrqgl',
    'USER': config['db_user'],
    'PASSWORD': config['db_pwd'],
    'HOST': config['db_host'],
    'POST': config['db_port']
  }
}

上面的BASE_DIR一般使用的都是默認值,即:

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

具體操作是創建一個config文件夾,該文件夾和你這個項目包同級,然後在其下面創建一個config.json文件,文件內容如下:

{
 "db_user": "root",
 "db_pwd": "123456",
 "db_host": "127.0.0.1",
 "db_port": "3306"
}

在上面的代碼中,ENGINE要說明一下,官方提供了針對不同數據庫的的不同操作引擎,以下是經常用的幾個:

sqlite數據庫:‘django.db.backends.sqlite3’,

postgreSQL數據庫:‘django.db.backends.postgresql_psycopg2’,

mysql數據庫:‘django.db.backends.mysql’

oracle數據庫:‘django.db.backends.oracle’

2.時區設置和字符集設置,一般用的都是下面三個:

設置保存到數據庫時間類型是否爲UTC時間,如果不需要請設置爲false,默認爲true:USE_TZ = True

設置時區:TIME_ZONE = ‘Asia/Shanghai’

設置語言:LANGUAGE_CODE = ‘zh-hans’

設置字符集:DEFAULT_CHARSET = “utf-8”

3.設置國際化,根據個人需要進行設置:

國際化:USE_I18N = True

相同內容被不同時區地區的用戶訪問時,是否以不同格式內容展示(例如時間,日期,數字):USE_L10N = True

4.部署配置:

調試模式是否開啓:DEBUG = True

訪問web服務的的Ip配置:ALLOWED_HOSTS = [’*’]

部署的時候請修改DEBUG和ALLOWED_HOSTS的值,一般將其修改爲FALSE和指定ip,例如[‘127.0.0.1’]

5.在setting.py中定義全局變量,該變量的變量名需要全部大寫,否則會引用不到:

CONTEXTBOOL= False

6.app的安裝配置,即INSTALLED_APPS設置,我們新建的項目需要添加到該配置下,每個配置的意義以後說明:

django.contrib.admin —— 管理站點。

django.contrib.auth —— 認證系統。

django.contrib.contenttypes —— 用於內容類型的框架。

django.contrib.sessions —— 會話框架,session數據可以在數據庫中的django_session表中查看。

django.contrib.messages —— 消息框架。

django.contrib.staticfiles —— 管理靜態文件的框架。

例如:

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

7.django的中間件配置,即MIDDLEWARE設置,所謂中間件就是從用戶請求到用戶請求結束期間所做的操作,即用戶的請求會次從上到下依次執行MIDDLEWARE中的配置,然後服務器響應用戶的時候會再次從下至上依次執行,和Java的Filter很相像:

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

一般的django配置如上圖,如果需要自己添加中間件配置的,也可自己添加,這裏不再多說。

8.setting中的加密鹽:

SECRET_KEY = 'i&&2$s&#%7npev^#uix==kis+h$4$ozscefiaw1c%p^+1c(l&6'

該配置是django的安全配置,防止攻擊用的,該值是startProject時用系統的某個算法產生的.

9.靜態文件目錄配置(重中之重)
所有靜態文件放置目錄,在配置nginx的時候,nginx的靜態資源要指向這裏。

STATIC_ROOT = os.path.join(BASE_DIR, 'static').replace('\\', '/')

別名,這個別名指的是在html引用的名稱

STATIC_URL = '/commonstatic/'

例如,下面的這個static實際上就是commonstatic,其在html裏面顯示如下:

{% block styles %}
  <link rel="stylesheet" href="{% static '/plugins/bootstrapValidator/bootstrapValidator.min.css' %}" rel="external nofollow" >
{% endblock %}

在這裏插入圖片描述
在django中指定靜態文件的目錄所在地

STATICFILES_DIRS = (
  os.path.join(BASE_DIR, 'commonstatic/').replace('\\', '/'),
)

在這裏插入圖片描述
一般情況下,上述的靜態文件配置上面幾乎可通用,絕少數情況下需要另配。

10.session會話配置(下面的配置會保存在數據庫的django_session中):

SESSION_ENGINE = 'django.contrib.sessions.backends.db' # 引擎(默認)
SESSION_COOKIE_NAME = "sessionid" # Session的cookie保存在瀏覽器上時的key,即:sessionid=隨機字符串(默認)
SESSION_COOKIE_PATH = "/" # Session的cookie保存的路徑(默認)
SESSION_COOKIE_DOMAIN = None # Session的cookie保存的域名(默認)
SESSION_COOKIE_SECURE = False # 是否Https傳輸cookie(默認)
SESSION_COOKIE_HTTPONLY = True # 是否Session的cookie只支持http傳輸(默認)
SESSION_COOKIE_AGE = 60 * 30 # Session的cookie失效日期(30min)(默認)
SESSION_EXPIRE_AT_BROWSER_CLOSE = True # 是否關閉瀏覽器使得Session過期(默認)
SESSION_SAVE_EVERY_REQUEST = True # 是否每次請求都保存Session,默認修改之後才保存(默認)

setting配置文件的內容大致如上,具體每個配置的作用會在以後的文章中進行說明!
最後給大家推薦一個資源很全的python學習聚集地,[點擊進入],這裏有我收集以前學習心得,學習筆記,還有一線企業的工作經驗,且給大定on零基礎到項目實戰的資料,大家也可以在下方,留言,把不懂的提出來,大家一起學習進步

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章