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

Django配置多個環(huán)境的MySQL數(shù)據(jù)庫的完整指南

 更新時間:2025年04月25日 11:16:34   作者:知識的寶藏  
在?Django?項目中配置多個環(huán)境的?MySQL?數(shù)據(jù)庫是一個常見的需求,本文為大家詳細(xì)介紹了配置的完整方法,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

在 Django 項目中配置多個環(huán)境的 MySQL 數(shù)據(jù)庫是一個常見的需求,特別是在開發(fā)、測試和生產(chǎn)環(huán)境中使用不同的數(shù)據(jù)庫配置。你可以通過在 settings.py 文件中使用條件語句或環(huán)境變量來實現(xiàn)這一點。

1. 使用環(huán)境變量

使用環(huán)境變量是一種靈活且安全的方式來配置多個環(huán)境的數(shù)據(jù)庫。你可以使用 django-environ 庫來簡化環(huán)境變量的管理。

安裝 django-environ

首先,安裝 django-environ 庫:

pip install django-environ

配置 settings.py

編輯 settings.py 文件,使用 environ 來讀取環(huán)境變量:

# myproject/settings.py

import environ

# 初始化環(huán)境變量
env = environ.Env()
environ.Env.read_env()

# 數(shù)據(jù)庫配置
DATABASES = {
    'default': env.db('DATABASE_URL', default='mysql://root:password@localhost:3306/dbname')
}

# 其他配置
DEBUG = env.bool('DEBUG', default=False)
SECRET_KEY = env('SECRET_KEY')
ALLOWED_HOSTS = env.list('ALLOWED_HOSTS', default=['localhost'])

設(shè)置環(huán)境變量

在不同的環(huán)境中設(shè)置相應(yīng)的環(huán)境變量。你可以在 .env 文件中設(shè)置這些變量,或者在操作系統(tǒng)中直接設(shè)置。

.env 文件示例

在項目根目錄下創(chuàng)建一個 .env 文件,并添加以下內(nèi)容:

# 開發(fā)環(huán)境
DEBUG=True
SECRET_KEY=your_secret_key_for_development
ALLOWED_HOSTS=localhost,127.0.0.1
DATABASE_URL=mysql://root:password@localhost:3306/dev_db

# 測試環(huán)境
# DEBUG=False
# SECRET_KEY=your_secret_key_for_testing
# ALLOWED_HOSTS=localhost,127.0.0.1
# DATABASE_URL=mysql://root:password@localhost:3306/test_db

# 生產(chǎn)環(huán)境
# DEBUG=False
# SECRET_KEY=your_secret_key_for_production
# ALLOWED_HOSTS=yourdomain.com
# DATABASE_URL=mysql://root:password@10.177.111.228:3306/ostp

操作系統(tǒng)環(huán)境變量

你也可以在操作系統(tǒng)的環(huán)境變量中設(shè)置這些值。例如,在 Linux 或 macOS 上,你可以在終端中運行:

export DEBUG=True
export SECRET_KEY=your_secret_key_for_development
export ALLOWED_HOSTS=localhost,127.0.0.1
export DATABASE_URL=mysql://root:password@localhost:3306/dev_db

Windows批處理

在bat腳本中設(shè)置了

@echo off
chcp 65001
echo "設(shè)置數(shù)據(jù)庫運行環(huán)境為開發(fā)環(huán)境"
set DEBUG=True
set SECRET_KEY=123456
set ALLOWED_HOSTS=localhost,127.0.0.1
set DATABASE_URL=mysql://root:123456@localhost:3306/test

2. 使用多個 settings 文件

另一種方法是為每個環(huán)境創(chuàng)建一個單獨的 settings 文件。這種方式更加直觀,但可能會導(dǎo)致更多的文件管理。

創(chuàng)建多個 settings 文件

在 myproject 目錄下創(chuàng)建以下文件:

  • settings_base.py:基礎(chǔ)配置
  • settings_dev.py:開發(fā)環(huán)境配置
  • settings_test.py:測試環(huán)境配置
  • settings_prod.py:生產(chǎn)環(huán)境配置

settings_base.py

# myproject/settings_base.py

import os

# 基礎(chǔ)配置
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
SECRET_KEY = 'your_default_secret_key'
ALLOWED_HOSTS = []

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # 你的應(yīng)用
    'myapp',
]

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 = 'myproject.urls'

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

WSGI_APPLICATION = 'myproject.wsgi.application'

# 靜態(tài)文件配置
STATIC_URL = '/static/'

settings_dev.py

# myproject/settings_dev.py

from .settings_base import *

# 開發(fā)環(huán)境配置
DEBUG = True
SECRET_KEY = 'your_secret_key_for_development'
ALLOWED_HOSTS = ['localhost', '127.0.0.1']
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'dev_db',
        'USER': 'root',
        'PASSWORD': 'password',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

settings_test.py

# myproject/settings_test.py

from .settings_base import *

# 測試環(huán)境配置
DEBUG = False
SECRET_KEY = 'your_secret_key_for_testing'
ALLOWED_HOSTS = ['localhost', '127.0.0.1']
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'test_db',
        'USER': 'root',
        'PASSWORD': 'password',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

settings_prod.py

# myproject/settings_prod.py

from .settings_base import *

# 生產(chǎn)環(huán)境配置
DEBUG = False
SECRET_KEY = 'your_secret_key_for_production'
ALLOWED_HOSTS = ['yourdomain.com']
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'ostp',
        'USER': 'root',
        'PASSWORD': 'ostp',
        'HOST': '10.177.111.228',
        'PORT': '3306',
    }
}

配置 manage.py 和 wsgi.py

在 manage.py 和 wsgi.py 中指定使用哪個 settings 文件。

manage.py

#!/usr/bin/env python
import os
import sys

if __name__ == "__main__":
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings_dev')  # 根據(jù)需要切換環(huán)境
    try:
        from django.core.management import execute_from_command_line
    except ImportError as exc:
        raise ImportError(
            "Couldn't import Django. Are you sure it's installed and "
            "available on your PYTHONPATH environment variable? Did you "
            "forget to activate a virtual environment?"
        ) from exc
    execute_from_command_line(sys.argv)

wsgi.py

import os
from django.core.wsgi import get_wsgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings_prod')  # 根據(jù)需要切換環(huán)境
application = get_wsgi_application()

總結(jié)

通過使用環(huán)境變量或多個 settings 文件,你可以在 Django 項目中輕松地配置多個環(huán)境的 MySQL 數(shù)據(jù)庫。選擇哪種方法取決于你的具體需求和團隊的工作流程。使用環(huán)境變量可以提供更好的靈活性和安全性,而使用多個 settings 文件則更加直觀和易于管理。

以上就是Django配置多個環(huán)境的MySQL數(shù)據(jù)庫的完整指南的詳細(xì)內(nèi)容,更多關(guān)于Django配置MySQL的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python模擬簡單電梯調(diào)度算法示例

    Python模擬簡單電梯調(diào)度算法示例

    這篇文章主要介紹了Python模擬簡單電梯調(diào)度算法,涉及Python線程、隊列、時間延遲等相關(guān)操作技巧,需要的朋友可以參考下
    2018-08-08
  • python 編寫簡單網(wǎng)頁服務(wù)器的實例

    python 編寫簡單網(wǎng)頁服務(wù)器的實例

    今天小編就為大家分享一篇python 編寫簡單網(wǎng)頁服務(wù)器的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • python 畫出使用分類器得到的決策邊界

    python 畫出使用分類器得到的決策邊界

    這篇文章主要介紹了python 畫出使用分類器得到的決策邊界,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • python單元測試框架pytest的使用示例

    python單元測試框架pytest的使用示例

    這篇文章主要介紹了python單元測試框架pytest的使用示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Pyhton中防止SQL注入的方法

    Pyhton中防止SQL注入的方法

    這篇文章主要介紹了Pyhton中防止SQL注入的方法,本文講解的方法簡單實用,需要的朋友可以參考下
    2015-02-02
  • PyTorch張量類型創(chuàng)建與轉(zhuǎn)換的詳細(xì)指南

    PyTorch張量類型創(chuàng)建與轉(zhuǎn)換的詳細(xì)指南

    在PyTorch的深度學(xué)習(xí)開發(fā)中,張量(Tensor)作為核心數(shù)據(jù)結(jié)構(gòu),其類型的靈活創(chuàng)建與轉(zhuǎn)換是基礎(chǔ)且關(guān)鍵的操作,今天就帶大家系統(tǒng)掌握PyTorch中張量指定類型的創(chuàng)建方法,以及多種類型轉(zhuǎn)換技巧,需要的朋友可以參考下
    2026-03-03
  • Python win32com操作Excel時徹底禁用彈窗的有效方法

    Python win32com操作Excel時徹底禁用彈窗的有效方法

    在使用Python的win32com模塊自動化操作Excel時,不知道大家有沒有遇到過這樣的煩惱:每次通過代碼打開Excel文件,都會彈出彈窗,所以今天就給大家分享一套實測有效的解決方案,通過簡單的代碼配置,一次性禁用所有干擾彈窗,需要的朋友可以參考下
    2026-02-02
  • Django之無名分組和有名分組的實現(xiàn)

    Django之無名分組和有名分組的實現(xiàn)

    這篇文章主要介紹了Django之無名分組和有名分組,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-04-04
  • 淺析Python pandas模塊輸出每行中間省略號問題

    淺析Python pandas模塊輸出每行中間省略號問題

    這篇文章主要介紹Python pandas模塊輸出每行中間省略號問題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-07-07
  • Python 獲得13位unix時間戳的方法

    Python 獲得13位unix時間戳的方法

    本篇文章主要介紹了Python 獲得13位unix時間戳的方法,非常具有實用價值,需要的朋友可以參考下
    2017-10-10

最新評論

广河县| 云霄县| 颍上县| 定南县| 天台县| 平利县| 莎车县| 托克逊县| 静乐县| 仪陇县| 尖扎县| 郁南县| 正阳县| 亚东县| 阿鲁科尔沁旗| 云霄县| 韶关市| 镇宁| 闵行区| 嵩明县| 家居| 江都市| 广东省| 秭归县| 克山县| 琼中| 于田县| 九龙县| 郑州市| 吉林省| 南涧| 宜宾县| 万载县| 信宜市| 五家渠市| 保定市| 陇川县| 南岸区| 尤溪县| 苏尼特右旗| 新乐市|