91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python動態配置管理Dynaconf如何實現

發布時間:2022-07-26 10:01:26 來源:億速云 閱讀:204 作者:iii 欄目:開發技術

這篇文章主要介紹了Python動態配置管理Dynaconf如何實現的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Python動態配置管理Dynaconf如何實現文章都會有所收獲,下面我們一起來看看吧。

1.準備

開始之前,你要確保 Python 和 pip 已經成功安裝在電腦上

然后,請選擇以下任一種方式輸入命令安裝依賴:

  • Windows 環境 打開 Cmd ( 開始-運行-CMD )

  • MacOS 環境 打開 Terminal ( command + 空格輸入 Terminal )

  • 如果你用的是 VSCode 編輯器 或 Pycharm,可以直接使用界面下方的 Terminal

pip install dynaconf

2.初步使用DynaConf

在你的項目的根目錄中運行 dynaconf init 命令。

cd path/to/your/project/
dynaconf init -f toml

會有類似如下的輸出,說明初始化完成:

?? Configuring your Dynaconf environment
------------------------------------------
???? The file `config.py` was generated.
????? settings.toml created to hold your settings.
???? .secrets.toml created to hold your secrets.
???? the .secrets.* is also included in `.gitignore`
beware to not push your secrets to a public repo.
???? Dynaconf is configured! read more on https://dynaconf.com

剛剛初始化的時候我們選擇了 toml 格式。實際上你還可以選擇 toml|yaml|json|ini|py ,不過 toml 是默認的,也是最推薦的配置格式。

初始化完成后會創建以下文件:

.
├── config.py # 需要被導入的配置腳本
├── .secrets.toml # 像密碼等敏感信息配置
└── settings.toml # 應用配置

初始化完成后你就可以編寫你的配置,編輯settings.toml:

key = "value"
a_boolean = false
number = 1234
a_float = 56.8
a_list = [1, 2, 3, 4]
a_dict = {hello="world"}
[a_dict.nested]
other_level = "nested value"

然后就可以在你的代碼中導入并使用這些配置:

from config import settings
assert settings.key == "value"
assert settings.number == 789
assert settings.a_dict.nested.other_level == "nested value"
assert settings['a_boolean'] is False
assert settings.get("DONTEXIST", default=1) == 1

如果是密碼等敏感信息,你可以配置在 .secrets.toml 中:

password = "xxxxxxxxxxxxxx"
token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
message = "This file doesn't go to your pub repo"

.secrets.toml 文件會被自動加入到 .gitignore 文件中,這些信息不會被上傳到Git倉庫上。

同時,DYNACONF還支持帶前綴的環境變量:

export DYNACONF_NUMBER=789
export DYNACONF_FOO=false
export DYNACONF_DATA__CAN__BE__NESTED=value
export DYNACONF_FORMATTED_KEY="@format {this.FOO}/BAR"
export DYNACONF_TEMPLATED_KEY="@jinja {{ env['HOME'] | abspath }}"

3.高級使用

你還可以在Flask或Django中使用DynaConf,以Django為例,第一步要先確保已經設置 DJANGO_SETTINGS_MODULE 環境變量:

export DJANGO_SETTINGS_MODULE=yourproject.settings

然后在 manage.py 相同文件夾下運行初始化命令:

dynaconf init -f yaml

然后按照終端上的說明進行操作:

Django app detected
?? Configuring your Dynaconf environment
------------------------------------------
????? settings.yaml created to hold your settings.
???? .secrets.yaml created to hold your secrets.
???? the .secrets.yaml is also included in `.gitignore`
beware to not push your secrets to a public repo
or use dynaconf builtin support for Vault Servers.
? path/to/yourproject/settings.py is found do you want to add dynaconf? [y/N]:

回答 y:

???? Now your Django settings are managed by Dynaconf
???? Dynaconf is configured! read more on https://dynaconf.com

在 Django 上,推薦的文件格式是yaml,因為它可以更輕松地保存復雜的數據結構,但是你依然可以選擇使用 toml、json、ini 甚至將你的配置保存為 .py 格式。

初始化 dynaconf 后,在現有的settings.py底部包含以下內容:

# HERE STARTS DYNACONF EXTENSION LOAD
import dynaconf # noqa
settings = dynaconf.DjangoDynaconf(__name__) # noqa
# HERE ENDS DYNACONF EXTENSION LOAD (No more code below this line)

現在,在你的 Django 視圖、模型和所有其他地方,你現在可以正常使用 django.conf.settings,因為它已被 Dynaconf 設置對象替換。

from django.conf import settings
def index(request):
    assert settings.DEBUG is True
    assert settings.NAME == "Bruno"
    assert settings.DATABASES.default.name == "db"
    assert settings.get("NONEXISTENT", 2) == 2

現在,通過修改 manage.py 相同文件夾下的配置文件,就能讓配置全局生效了

關于“Python動態配置管理Dynaconf如何實現”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Python動態配置管理Dynaconf如何實現”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

凌海市| 怀集县| 江达县| 镇雄县| 潼关县| 临洮县| 开封县| 迁西县| 丹棱县| 拜泉县| 老河口市| 安新县| 勐海县| 太原市| 莆田市| 油尖旺区| 吴江市| 南漳县| 汨罗市| 安化县| 益阳市| 鲁山县| 万载县| 南安市| 衡阳市| 旌德县| 鄂温| 建水县| 邵阳市| 涿州市| 柯坪县| 西华县| 锡林浩特市| 凭祥市| 涞水县| 玉山县| 洛隆县| 垣曲县| 泰安市| 县级市| 扬中市|