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

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

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

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

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

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

安裝 django-environ

首先,安裝 django-environ 庫(kù):

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ù)庫(kù)配置
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 文件示例

在項(xiàng)目根目錄下創(chuàng)建一個(gè) .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

# 測(cè)試環(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 上,你可以在終端中運(yùn)行:

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ù)庫(kù)運(yùn)行環(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. 使用多個(gè) settings 文件

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

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

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

  • settings_base.py:基礎(chǔ)配置
  • settings_dev.py:開發(fā)環(huán)境配置
  • settings_test.py:測(cè)試環(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 *

# 測(cè)試環(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 中指定使用哪個(gè) 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)境變量或多個(gè) settings 文件,你可以在 Django 項(xiàng)目中輕松地配置多個(gè)環(huán)境的 MySQL 數(shù)據(jù)庫(kù)。選擇哪種方法取決于你的具體需求和團(tuán)隊(duì)的工作流程。使用環(huán)境變量可以提供更好的靈活性和安全性,而使用多個(gè) settings 文件則更加直觀和易于管理。

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

相關(guān)文章

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

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

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

    python 編寫簡(jiǎn)單網(wǎng)頁(yè)服務(wù)器的實(shí)例

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

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

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

    python單元測(cè)試框架pytest的使用示例

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

    Pyhton中防止SQL注入的方法

    這篇文章主要介紹了Pyhton中防止SQL注入的方法,本文講解的方法簡(jiǎn)單實(shí)用,需要的朋友可以參考下
    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時(shí)徹底禁用彈窗的有效方法

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

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

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

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

    淺析Python pandas模塊輸出每行中間省略號(hào)問題

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

    Python 獲得13位unix時(shí)間戳的方法

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

最新評(píng)論

阳山县| 海丰县| 高雄县| 哈尔滨市| 封丘县| 温泉县| 临沧市| 梁平县| 富宁县| 当涂县| 岳阳市| 三江| 都匀市| 丘北县| 游戏| 乌兰察布市| 牟定县| 靖宇县| 永康市| 左权县| 余江县| 柳州市| 普洱| 泽库县| 文化| 罗江县| 连城县| 灵武市| 化州市| 莎车县| 元江| 故城县| 鲁山县| 辉县市| 滨州市| 明溪县| 克山县| 忻州市| 银川市| 洮南市| 兴安盟|