码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • python库-dotenv包 | .env配置文件


    文章目录

    • python库-dotenv包 | .env配置文件
      • 背景
      • python-dotenv 如何使用

    python库-dotenv包 | .env配置文件

    背景

    我们开发的每个系统都离不开配置信息,这些信息都非常敏感,一旦泄露出去后果非常严重,被泄露的原因一般是程序员将配置信息和代码混在一起导致的。

    一般业务代码中,通过环境变量来加载敏感信息。

    将敏感信息设置成环境变量,但是这样的信息非常多,挨个设置也太麻烦了。你一定希望可以将这些敏感信息单独放在一个文件中,始终与代码分开管理。

    在python项目中,敏感信息(如数据库密码)比较推荐使用 .env文件来单独管理,且不纳入git管理中。而目前比较流行的解析.env则是python-dotenv。

    python-dotenv 能将配置文件的配置信息自动加入到环境变量。 python-dotenv解决了代码与敏感信息的分离

    flask官方推荐使用python-dotenv包来管理特殊的配置。

    python-dotenv 如何使用

    使用思路:最简单和最常见的用法是在应用程序启动时调用load_dotenv,从当前目录或其父目录中的.env文件或指定的路径加载环境变量,然后你可以调用os.getenv提供的与环境相关的方法。

    load_dotenv默认不会更新已经存在的配置项。推荐使用override参数,如下:

    from dotenv import load_dotenv, find_dotenv
    load_dotenv(find_dotenv(), override=True)
    
    • 1
    • 2
    • dotenv_path: 指定.env文件路径,当然如果不传该参数的话(默认为None)也会自定调用dotenv.find_dotenv()去查找文件位置的,但是你的文件名如果不是.env那就必须传递该参数
    • override: 当.env 文件中有变量与系统中原来的环境变量有冲突时,按照上面的取值顺序,默认使用系统变量,如果要用.env中的变量覆盖系统变量,可以给load_dotenv() 传递参数override=True。此时只是临时使用了.env 中的变量值
    import os
    from dotenv import find_dotenv, load_dotenv
    
    # 加载.env文件到环境变量
    load_dotenv(find_dotenv('.env'))
    print(os.environ.get("URL"))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    加载文件后,就可以通过os.environ从环境变量中读取内容。

  • 相关阅读:
    CentOS8.2安装mysql8.0
    代码随想录算法训练营第23期day4| 24. 两两交换链表中的节点 、19.删除链表的倒数第N个节点、面试题 02.07. 链表相交、142.环形链表II
    python解决浮点运算取整时值错误的问题
    EasyExcel动态表头导出
    【云原生 · Kubernetes】kubeadm创建集群
    如何保证Redis与数据库的数据一致性
    java spring cloud 企业工程管理系统源码+二次开发+定制化服务
    第一个ALV程序2
    推荐一个适合App、小程序等所有前端应用的图表库
    基于单片机的智能电机保护器设计
  • 原文地址:https://blog.csdn.net/inthat/article/details/126588646
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号