นี่เป็นโพสต์เก่า แต่ฉันคิดว่าถ้าฉันเพิ่มสิ่งนี้มีประโยชน์ library
มันจะทำให้สิ่งต่างๆง่ายขึ้น
ใช้django-configuration
Quickstart
pip install django-configurations
จากนั้นซับคลาสการกำหนดค่าที่รวมไว้คลาสคอนฟิกูเรชันใน settings.py ของโปรเจ็กต์ของคุณหรือโมดูลอื่น ๆ ที่คุณใช้เพื่อเก็บค่าคงที่ของการตั้งค่าเช่น:
# mysite/settings.py
from configurations import Configuration
class Dev(Configuration):
DEBUG = True
ตั้งค่าDJANGO_CONFIGURATION
ตัวแปรสภาพแวดล้อมเป็นชื่อของคลาสที่คุณเพิ่งสร้างเช่นใน~/.bashrc
:
export DJANGO_CONFIGURATION=Dev
และDJANGO_SETTINGS_MODULE
ตัวแปรสภาพแวดล้อมไปยังเส้นทางการนำเข้าโมดูลตามปกติเช่นใน bash:
export DJANGO_SETTINGS_MODULE=mysite.settings
อีกทางเลือกหนึ่งในการจัดหา--configuration
ตัวเลือกเมื่อใช้คำสั่งการจัดการ Django ตามบรรทัดของ--settings
ตัวเลือกบรรทัดคำสั่งเริ่มต้นของ Django เช่น:
python manage.py runserver --settings=mysite.settings --configuration=Dev
ในการเปิดใช้งาน Django เพื่อใช้การกำหนดค่าของคุณตอนนี้คุณต้องแก้ไขสคริปต์Manage.pyหรือwsgi.pyของคุณเพื่อใช้เวอร์ชันเริ่มต้นของฟังก์ชันเริ่มต้นที่เหมาะสมของ django-configurations เช่นManage.pyทั่วไปที่ใช้ django-configuration จะมีลักษณะดังนี้:
#!/usr/bin/env python
import os
import sys
if __name__ == "__main__":
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')
os.environ.setdefault('DJANGO_CONFIGURATION', 'Dev')
from configurations.management import execute_from_command_line
execute_from_command_line(sys.argv)
แจ้งให้ทราบล่วงหน้าในสาย 10 เราไม่ได้ใช้เครื่องมือทั่วไปแต่แทนที่จะdjango.core.management.execute_from_command_line
configurations.management.execute_from_command_line
เช่นเดียวกับไฟล์wsgi.pyของคุณเช่น:
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')
os.environ.setdefault('DJANGO_CONFIGURATION', 'Dev')
from configurations.wsgi import get_wsgi_application
application = get_wsgi_application()
ที่นี่เราไม่ได้ใช้เริ่มต้นdjango.core.wsgi.get_wsgi_application
การทำงาน configurations.wsgi.get_wsgi_application
แต่แทนที่จะ
แค่นั้นแหละ! ตอนนี้คุณสามารถใช้โปรเจ็กต์ของคุณกับManage.pyและเซิร์ฟเวอร์ที่เปิดใช้งาน WSGI ที่คุณชื่นชอบ