最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Django中的settings.py文件使用全解析

 更新時(shí)間:2025年03月18日 11:28:54   作者:Yant224  
這篇文章主要介紹了Django中的settings.py文件使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

本篇詳細(xì)介紹 Django settings.py 文件各個(gè)配置項(xiàng)的教程,涵蓋核心配置項(xiàng)的作用及最佳實(shí)踐

一、基礎(chǔ)配置

1. ?BASE_DIR

BASE_DIR = Path(__file__).resolve().parent.parent
  • ?作用:項(xiàng)目根目錄路徑,用于構(gòu)建其他路徑(如模板、靜態(tài)文件路徑)
  • ^注意:使用 Path 對(duì)象更安全,替代傳統(tǒng)的 os.path.dirname()

2. ?SECRET_KEY

SECRET_KEY = 'django-insecure-xxxxxxxx'

?作用:用于加密簽名(Session、密碼重置等)

安全建議

  • 永遠(yuǎn)不要提交到版本控制
  • 生產(chǎn)環(huán)境使用環(huán)境變量加載:
import os
SECRET_KEY = os.environ.get('DJANGO_SECRET_KEY')

3.DEBUG

DEBUG = True
  • ?作用:開(kāi)啟調(diào)試模式(顯示詳細(xì)錯(cuò)誤頁(yè)面)
  • 生產(chǎn)環(huán)境必須關(guān)閉
DEBUG = False

4. ALLOWED_HOSTS

ALLOWED_HOSTS = ['example.com', '127.0.0.1']
  • ?作用:允許訪問(wèn)的域名/IP白名單
  • ?開(kāi)發(fā)環(huán)境配置
ALLOWED_HOSTS = ['*']  # 僅限開(kāi)發(fā)環(huán)境!

二、應(yīng)用與中間件

1. ?INSTALLED_APPS

# 注冊(cè)內(nèi)置、第三方、自己寫的app
INSTALLED_APPS = [
    'django.contrib.admin', # 管理后臺(tái)
    'django.contrib.auth', # 認(rèn)證系統(tǒng)
    'django.contrib.contenttypes', # 提供 ?通用模型關(guān)系系統(tǒng),允許任意模型之間建立動(dòng)態(tài)關(guān)聯(lián)
    'django.contrib.sessions', # 會(huì)話管理
    'django.contrib.messages', # 提供 ?一次性消息傳遞系統(tǒng),用于在頁(yè)面跳轉(zhuǎn)間臨時(shí)存儲(chǔ)提示信息(如操作成功/失敗提示)
    'django.contrib.staticfiles', # 靜態(tài)文件處理
    'myapp.apps.MyAppConfig',  # 自定義應(yīng)用
    'rest_framework',         # 第三方應(yīng)用
]

2. ?MIDDLEWARE

# 注冊(cè)內(nèi)置、第三方、自己寫的中間件
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware', # 安全相關(guān)頭信息
    'django.contrib.sessions.middleware.SessionMiddleware', # 會(huì)話管理
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware', # CSRF保護(hù)
    'django.contrib.auth.middleware.AuthenticationMiddleware', 用戶認(rèn)證
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

三、數(shù)據(jù)庫(kù)配置

1. ?DATABASES

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'mydatabase',
        'USER': 'mydbuser',
        'PASSWORD': 'mypassword',
        'HOST': 'localhost',
        'PORT': '5432',
    }
}

支持的數(shù)據(jù)庫(kù)引擎:

  • sqlite3:輕量級(jí)本地?cái)?shù)據(jù)庫(kù)(開(kāi)發(fā)用)
  • postgresql:PostgreSQL
  • mysql:MySQL
  • oracle:Oracle

2. ?使用環(huán)境變量(生產(chǎn)推薦)?

import os
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': os.getenv('DB_NAME'),
        'USER': os.getenv('DB_USER'),
        'PASSWORD': os.getenv('DB_PASSWORD'),
        'HOST': os.getenv('DB_HOST'),
        'PORT': os.getenv('DB_PORT'),
    }
}

四、靜態(tài)文件與媒體文件

1. ?STATIC_URL & STATIC_ROOT

STATIC_URL = '/static/'  # 訪問(wèn)URL前綴
STATIC_ROOT = BASE_DIR / 'staticfiles'  # collectstatic收集目錄
STATICFILES_DIRS = [      # 額外靜態(tài)文件目錄
    BASE_DIR / 'static',
]

2. MEDIA_URL & MEDIA_ROOT

MEDIA_URL = '/media/'     # 用戶上傳文件訪問(wèn)路徑
MEDIA_ROOT = BASE_DIR / 'media'  # 文件存儲(chǔ)路徑

五、模板配置

1. TEMPLATES

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [BASE_DIR / 'templates'],  # 模板搜索路徑
        'APP_DIRS': True,  # 是否搜索應(yīng)用內(nèi)的templates目錄
        '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',
            ],
        },
    },
]

六、國(guó)際化配置

1. 語(yǔ)言與時(shí)區(qū)

LANGUAGE_CODE = 'zh-hans'  # 中文
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True            # 啟用國(guó)際化
USE_TZ = True              # 使用時(shí)區(qū)

2. 多語(yǔ)言支持

LOCALE_PATHS = [BASE_DIR / 'locale']  # 翻譯文件目錄

七、安全配置(生產(chǎn)必須)

1. HTTPS 設(shè)置

SECURE_SSL_REDIRECT = True         # 強(qiáng)制HTTPS
SESSION_COOKIE_SECURE = True       # 安全Cookie
CSRF_COOKIE_SECURE = True           # CSRF Cookie加密
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')

2. 安全頭信息

SECURE_CONTENT_TYPE_NOSNIFF = True
SECURE_BROWSER_XSS_FILTER = True
X_FRAME_OPTIONS = 'DENY'  # 防止點(diǎn)擊劫持

八、高級(jí)配置

1. 緩存配置

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.redis.RedisCache',
        'LOCATION': 'redis://127.0.0.1:6379/1',
    }
}

2. 郵件配置

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.example.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = 'user@example.com'
EMAIL_HOST_PASSWORD = 'password'

九、最佳實(shí)踐

1.環(huán)境分離:使用多個(gè)配置文件

settings/
├── base.py
├── development.py
└── production.py

2. 敏感信息管理:使用 python-dotenv

from dotenv import load_dotenv
load_dotenv()

3. ?性能優(yōu)化:

DATABASES['default']['CONN_MAX_AGE'] = 300  # 數(shù)據(jù)庫(kù)連接池

拓展:

通過(guò)合理配置 settings.py,您可以:

  • 確保開(kāi)發(fā)與生產(chǎn)環(huán)境的安全隔離
  • 優(yōu)化Web應(yīng)用性能
  • 靈活擴(kuò)展功能(如緩存、郵件服務(wù))
  • 實(shí)現(xiàn)多語(yǔ)言支持與國(guó)際化部署

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用Python 正則匹配兩個(gè)特定字符之間的字符方法

    使用Python 正則匹配兩個(gè)特定字符之間的字符方法

    今天小編就為大家分享一篇使用Python 正則匹配兩個(gè)特定字符之間的字符方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • 一文帶你掌握Python中enumerate函數(shù)和for循環(huán)的對(duì)比

    一文帶你掌握Python中enumerate函數(shù)和for循環(huán)的對(duì)比

    在Python編程中,循環(huán)是一項(xiàng)常見(jiàn)的任務(wù),而for循環(huán)是最常見(jiàn)的一種,然而,Python提供了enumerate函數(shù),它允許在迭代過(guò)程中訪問(wèn)元素的同時(shí)獲得它們的索引,下面我們就來(lái)學(xué)習(xí)一下二者的區(qū)別吧
    2023-11-11
  • python實(shí)現(xiàn)Pyecharts實(shí)現(xiàn)動(dòng)態(tài)地圖(Map、Geo)

    python實(shí)現(xiàn)Pyecharts實(shí)現(xiàn)動(dòng)態(tài)地圖(Map、Geo)

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)Pyecharts實(shí)現(xiàn)動(dòng)態(tài)地圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Python調(diào)用.net動(dòng)態(tài)庫(kù)實(shí)現(xiàn)過(guò)程解析

    Python調(diào)用.net動(dòng)態(tài)庫(kù)實(shí)現(xiàn)過(guò)程解析

    這篇文章主要介紹了Python調(diào)用.net動(dòng)態(tài)庫(kù)實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • streamlit(python構(gòu)建web)之環(huán)境搭建過(guò)程

    streamlit(python構(gòu)建web)之環(huán)境搭建過(guò)程

    這篇文章主要介紹了streamlit(python構(gòu)建web)之環(huán)境搭建過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • Python使用pip工具實(shí)現(xiàn)包自動(dòng)更新的多種方法

    Python使用pip工具實(shí)現(xiàn)包自動(dòng)更新的多種方法

    本文深入探討了使用Python的pip工具實(shí)現(xiàn)包自動(dòng)更新的各種方法和技術(shù),我們將從基礎(chǔ)概念開(kāi)始,逐步介紹手動(dòng)更新方法、自動(dòng)化腳本編寫、結(jié)合CI/CD的實(shí)現(xiàn)方案,以及最佳實(shí)踐和安全考量,文章包含詳細(xì)的代碼示例、流程圖解和實(shí)際應(yīng)用場(chǎng)景分析,需要的朋友可以參考下
    2025-07-07
  • python3利用Socket實(shí)現(xiàn)通信的方法示例

    python3利用Socket實(shí)現(xiàn)通信的方法示例

    這篇文章主要介紹了python3利用Socket實(shí)現(xiàn)通信的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • 卷積神經(jīng)網(wǎng)絡(luò)如何實(shí)現(xiàn)提取特征

    卷積神經(jīng)網(wǎng)絡(luò)如何實(shí)現(xiàn)提取特征

    這篇文章主要介紹了卷積神經(jīng)網(wǎng)絡(luò)如何實(shí)現(xiàn)提取特征問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Python3中Sanic中間件的使用

    Python3中Sanic中間件的使用

    Sanic框架中的中間件是一種強(qiáng)大的工具,本文就來(lái)介紹Python3中Sanic中間件的使用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-01-01
  • 如何查看python中安裝庫(kù)的文件位置

    如何查看python中安裝庫(kù)的文件位置

    這篇文章主要介紹了查看python中安裝庫(kù)的文件位置的方法,python自帶標(biāo)準(zhǔn)庫(kù)位置在安裝環(huán)境的lib文件夾下的.py文件都是,在環(huán)境的lib文件夾中,本文給大家詳細(xì)講解需要的朋友可以參考下
    2022-11-11

最新評(píng)論

富宁县| 永福县| 方城县| 临城县| 元谋县| 通江县| 建阳市| 新密市| 宣汉县| 遂川县| 安陆市| 合水县| 响水县| 上虞市| 岢岚县| 澄迈县| 华坪县| 繁昌县| 德阳市| 河曲县| 报价| 滕州市| 柳河县| 瑞昌市| 凯里市| 太仆寺旗| 麻江县| 新蔡县| 惠安县| 醴陵市| 雷州市| 威宁| 河间市| 汉源县| 山阴县| 佛山市| 长治市| 潜山县| 渝中区| 社会| 呼和浩特市|