码农知识堂 - 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从环境变量中读取内容。

  • 相关阅读:
    数据结构学习笔记——图的存储结构(邻接矩阵和邻接表)
    Selenium IDE 的使用指南
    学术研究和论文写作
    洛谷C++简单题小练习day17—输出保留 3 位小数的浮点数, A*B 问题,白细胞计数三个小程序
    LeetCode 26 删除有序数组中的重复项
    第7章 Elasticsearch面试题
    工作流-流程实例【ProcessInstance】与执行实例【Execution】
    C语言基础
    隧道人员定位解决方案,好用到离谱
    Python 异步网络编程实战
  • 原文地址:https://blog.csdn.net/inthat/article/details/126588646
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号