亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時間:2025年04月25日 11:16:34   作者:知識的寶藏  
在?Django?項目中配置多個環(huán)境的?MySQL?數(shù)據(jù)庫是一個常見的需求,本文為大家詳細介紹了配置的完整方法,感興趣的小伙伴可以跟隨小編一起學(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ù)庫的完整指南的詳細內(nèi)容,更多關(guān)于Django配置MySQL的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python實現(xiàn)搜索本地文件信息寫入文件的方法

    python實現(xiàn)搜索本地文件信息寫入文件的方法

    這篇文章主要介紹了python實現(xiàn)搜索本地文件信息寫入文件的方法,涉及Python針對文件的遍歷及屬性操作相關(guān)技巧,需要的朋友可以參考下
    2016-02-02
  • Python的Flask框架中web表單的教程

    Python的Flask框架中web表單的教程

    這篇文章主要介紹了Python的Flask框架中web表單的教程,表單是學(xué)習(xí)各個web框架中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-04-04
  • python分分鐘繪制精美地圖海報

    python分分鐘繪制精美地圖海報

    基于Python中諸如matplotlib等功能豐富、自由度極高的繪圖庫,我們可以完成各種極富藝術(shù)感的可視化作品,關(guān)于這一點我在系列文章在模仿中精進數(shù)據(jù)可視化中已經(jīng)帶大家學(xué)習(xí)過很多案例了
    2022-02-02
  • Django進階之CSRF的解決

    Django進階之CSRF的解決

    這篇文章主要介紹了Django進階之CSRF的解決,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • Python編程實現(xiàn)下載器自動爬取采集B站彈幕示例

    Python編程實現(xiàn)下載器自動爬取采集B站彈幕示例

    這篇文章主要介紹了使用Python編程來實現(xiàn)一個下載器可以自動爬取采集B站彈幕的示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪
    2021-10-10
  • Python報錯ImportError:?IProgress?not?found.?Please?update?jupyter?and?ipywidgets解決

    Python報錯ImportError:?IProgress?not?found.?Please?update

    在使用Jupyter Notebook或JupyterLab進行交互式編程時,我們可能會遇到各種導(dǎo)入錯誤,本文就來介紹一下Python報錯ImportError:?IProgress?not?found.?Please?update?jupyter?and?ipywidgets解決,感興趣的可以了解一下
    2024-06-06
  • python用folium繪制地圖并設(shè)置彈窗效果

    python用folium繪制地圖并設(shè)置彈窗效果

    這篇文章主要介紹了python用folium繪制地圖并設(shè)置彈窗,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • Python基礎(chǔ)之元編程知識總結(jié)

    Python基礎(chǔ)之元編程知識總結(jié)

    很多人不理解“元編程”是個什么東西,關(guān)于它也沒有一個十分準(zhǔn)確的定義.這篇文章要說的是Python里的元編程,實際上也不一定就真的符合“元編程”的定義.只不過我無法找到一個更準(zhǔn)確的名字來代表這篇文章的主題,所以就借了這么一個名號,需要的朋友可以參考下
    2021-05-05
  • python分割文件的常用方法

    python分割文件的常用方法

    這篇文章主要介紹了python分割文件的常用方法,包括指定分割大小、按行分割與分割合并等技巧,非常實用,需要的朋友可以參考下
    2014-11-11
  • Python單元測試框架unittest使用方法講解

    Python單元測試框架unittest使用方法講解

    這篇文章主要介紹了Python單元測試框架unittest使用方法講解,本文講解了unittest概述、命令行接口、測試案例自動搜索、創(chuàng)建測試代碼、構(gòu)建測試套件方法等內(nèi)容,需要的朋友可以參考下
    2015-04-04

最新評論