Python编程中机密信息的处理和错误捕获的一些常识
# 背景 我们在Python写代码的时候,肯定会有一些机密信息需要处理,比如账号密码,APIKey这样的东西。如果我们直接编写到代码中,会造成不安全的因素,如果代码泄露,我们的机密信息也会泄露。还有,在进行多人协作开发的时候,比如使用Git仓库进行源代码管…
# 背景
我们在Python写代码的时候,肯定会有一些机密信息需要处理,比如账号密码,APIKey这样的东西。如果我们直接编写到代码中,会造成不安全的因素,如果代码泄露,我们的机密信息也会泄露。还有,在进行多人协作开发的时候,比如使用Git仓库进行源代码管理的时候,如果我们不对机密信息进行妥善保管,就会造成隐私的泄露。
特别是很多API文档中的机密信息,都喜欢用os.environ.get()
这个方法,我根本不知道怎么传递。
所以原来我一直都是直接把什么Key都放到代码中,今天我学会了一种方法来妥善保管机密信息:
dotenv
这个是真的好用,只需要一个.env
文件就可以保存机密信息并方便调用和传递,真的很方便
使用
安装
1 | pip install python-dotenv |
使用
在任意目录创建一个.env文件,在里面写上你的机密文件就行,比如这样
1 | TENCENTCLOUD_SECRETID = YOUR_SECRET_ID |
然后就直接保存就行
不用加单引号或者双引号就行
然后在你需要使用env信息的文件中导入就行,比如这样
1 | from dotenv import load_dotenv |
这样一来就可以安全保存机密信息了。
注意,此时
SecretId
和SecretKey
这两个值都是字符串变量了,要用的时候直接调用即可,不需要加引号了
好处
在实际开发中,对于机密信息的保护是很重要的,这样其实对于产品的交付也很重要。让用户在控制台中输入自己的机密信息多少有点不优雅,如果可以直接在文本文件中保存机密信息,程序直接读取,这样就优雅的多。
另外,这样可以只让机密信息保存在本地,更加安全。
错误捕获的一些常识
之前一直都很好奇,似乎错误捕获和条件语句没啥区别啊,不都是遇到某种情况然后进行处理了吗?
但是今天我终于知道了为什么,我总结了下大概有这几点:
使用except捕获异常,会更方便定位错误和调试一些。比如我们要进行一个网络连接的操作,如果我们写好了捕获异常的语句,我们就可以使用
print(f'e')
将错误打印到控制台快速知道是什么问题了,而不是简单通过一个if语句判断是否成功,但是无从下手使用except捕获异常,更加方便构建一个用户友好的程序,处理所有意外情况。我们不可能预知所有的错误,所以if语句和except语句不可能无限多,但是except可以捕获最基本的
Exception
错误,告诉用户出现错误,不至于整个程序崩溃。
我们实际上不能预知所有的错误发生,这才是异常处理的原因。或许有很多原因导致了一个错误,这些原因是不可预知的,这时我们就需要except来捕获异常。很重要的一句话:
if语句用于基于条件的控制流,这些条件通常是可以预先评估的。
我是六六,欢迎评论、交换想法和指正哦,一起加油!