中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

如何在flask中使用python-dotenv+flask-cli自定義命令

發布時間:2021-03-22 16:52:08 來源:億速云 閱讀:345 作者:Leah 欄目:開發技術

這篇文章給大家介紹如何在flask中使用python-dotenv+flask-cli自定義命令,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

自定義命令工具——flask-cli

在Flask 1.0+ 中已經支持了flask-cli,在翻閱了flask-cli文檔之后,發現文檔中提供的自定義命令的方法約束還是有點多,而且介紹的也不是特別詳細。后來,通過查看flask-cli的源碼發現flask-cli是基于Click開發的。

Click is a Python package for creating beautiful command line interfaces in a composable way with as little code as necessary. It's the “Command Line Interface Creation Kit”. It's highly configurable but comes with sensible defaults out of the box.

Click是一個可以使用簡潔代碼和組合方法來創建漂亮的命令行命令的Python包。它還是一個高度可配置的,具有合理的默認設置的命令行工具創建工具包。

管理環境變量——python-dotenv

在使用flask-cli的時候,為了不需要每次都在 flask run 之前都引入環境變量。官方文檔中提了 python-dotenv ,需要在項目中創建 .env 和 .flaskenv 兩個文件。

命令行設置的變量會重載 .env 中的變量, .env 中的變量會重載 .flaskenv 中的變量。 .flaskenv 應當用于公共變量,如 FLASK_APP 而 .env 則應用用于私有變量,并且不提交到儲存庫。

在使用 python-dotenv 之前還需要通過 pip 去安裝依賴包(我這里使用的 pipenv ):

pipenv install python-dotenv

在 .env 文件中一般寫一些私有變量或者是涉及到隱私的變量,即使不上傳到 git 上也不影響程序運行的這種。

下面以 .flaskenv 中的幾個變量為例:

# .flaskenv
FLASK_APP = "app"
FLASK_ENV = "development"
FLASK_RUN_HOST = '0.0.0.0'
FLASK_RUN_PORT = '5000'

讀取環境變量

這里介紹如何在項目讀取變量的方法:

import os
from dotenv import load_dotenv
# 加載環境變量文件,dotenv_path默認值為.env,override是表示是否可以重載,默認值為False
load_dotenv(dotenv_path='.flaskenv',override=True)
# 讀取環境變量 FLASK_ENV,通過os.getenv()方法中引入字段名稱來讀取
env = os.getenv("FLASK_ENV")
print(env)

自定義命令

這里我的項目的入口文件為 app.py

# app.py
import click
import os
from os.path import dirname,join
from dotenv import load_dotenv
# 加載變量文件
load_dotenv(dotenv_path='.flaskenv')

'''
下面這一段代碼是根據在命令行中傳入的dev的值來執行不同的命令,從而達到一個命令區分開發環境和生產環境
'''
@click.command()
@click.option('--dev', default=os.getenv("FLASK_ENV"),help='environment variable')
def runserver(dev):
 os.system("FLASK_ENV=%s flask run" % (dev))

if __name__ == '__main__':
 runserver()

運行代碼:

# 開發環境
python app.py
或者
python app.py --dev=development
# 生產環境
python app.py --dev=production

關于如何在flask中使用python-dotenv+flask-cli自定義命令就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

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

AI

禹城市| 香河县| 东源县| 长治县| 西乡县| 广丰县| 城市| 怀宁县| 西乌| 遂昌县| 剑川县| 大宁县| 嵊州市| 友谊县| 连城县| 慈利县| 汉寿县| 泸定县| 汶川县| 宜城市| 茶陵县| 邹平县| 抚顺县| 长治县| 陆良县| 丹江口市| 石楼县| 乌苏市| 宜都市| 阜平县| 阿勒泰市| 石河子市| 韶关市| 同心县| 同江市| 华池县| 泰来县| 泌阳县| 禄劝| 嵊州市| 新乡市|