Python编程中机密信息的处理和错误捕获的一些常识

# 背景 我们在Python写代码的时候,肯定会有一些机密信息需要处理,比如账号密码,APIKey这样的东西。如果我们直接编写到代码中,会造成不安全的因素,如果代码泄露,我们的机密信息也会泄露。还有,在进行多人协作开发的时候,比如使用Git仓库进行源代码管…

# 背景

我们在Python写代码的时候,肯定会有一些机密信息需要处理,比如账号密码,APIKey这样的东西。如果我们直接编写到代码中,会造成不安全的因素,如果代码泄露,我们的机密信息也会泄露。还有,在进行多人协作开发的时候,比如使用Git仓库进行源代码管理的时候,如果我们不对机密信息进行妥善保管,就会造成隐私的泄露。

特别是很多API文档中的机密信息,都喜欢用os.environ.get()这个方法,我根本不知道怎么传递。

所以原来我一直都是直接把什么Key都放到代码中,今天我学会了一种方法来妥善保管机密信息:

dotenv

这个是真的好用,只需要一个.env文件就可以保存机密信息并方便调用和传递,真的很方便

使用

安装

1
pip install python-dotenv

使用

在任意目录创建一个.env文件,在里面写上你的机密文件就行,比如这样

1
2
3
4
TENCENTCLOUD_SECRETID = YOUR_SECRET_ID
TENCENTCLOUD_SECRETKEY = YOUR_SECRET_KEY
DOMAIN = YOUR_DOMAIN
SUBDOMAIN = YOUR_SUBDOMAIN

然后就直接保存就行

不用加单引号或者双引号就行

然后在你需要使用env信息的文件中导入就行,比如这样

1
2
3
4
5
6
7
8
from dotenv import load_dotenv
import os

load_dotenv()
# 如果就这么写不加参数就是在当前这个py文件中寻找env文件载入,如果env文件在其他目录,这里路径作为参数传递即可,记得加引号

SecretId = os.environ.get('TENCENTCLOUD_SECRETID')
SecretKey = os.environ.get('TENCENTCLOUD_SECRETKEY')

这样一来就可以安全保存机密信息了。

注意,此时SecretIdSecretKey这两个值都是字符串变量了,要用的时候直接调用即可,不需要加引号了

好处

在实际开发中,对于机密信息的保护是很重要的,这样其实对于产品的交付也很重要。让用户在控制台中输入自己的机密信息多少有点不优雅,如果可以直接在文本文件中保存机密信息,程序直接读取,这样就优雅的多。

另外,这样可以只让机密信息保存在本地,更加安全。


错误捕获的一些常识

之前一直都很好奇,似乎错误捕获和条件语句没啥区别啊,不都是遇到某种情况然后进行处理了吗?

但是今天我终于知道了为什么,我总结了下大概有这几点:

  • 使用except捕获异常,会更方便定位错误和调试一些。比如我们要进行一个网络连接的操作,如果我们写好了捕获异常的语句,我们就可以使用print(f'e')将错误打印到控制台快速知道是什么问题了,而不是简单通过一个if语句判断是否成功,但是无从下手

  • 使用except捕获异常,更加方便构建一个用户友好的程序,处理所有意外情况。我们不可能预知所有的错误,所以if语句和except语句不可能无限多,但是except可以捕获最基本的Exception错误,告诉用户出现错误,不至于整个程序崩溃。

我们实际上不能预知所有的错误发生,这才是异常处理的原因。或许有很多原因导致了一个错误,这些原因是不可预知的,这时我们就需要except来捕获异常。很重要的一句话:

if语句用于基于条件的控制流,这些条件通常是可以预先评估的。


我是六六,欢迎评论、交换想法和指正哦,一起加油!

主页