# python
python捕获异常堆栈信息
python的异常对称相比java或php简单了很多,对象中的信息很少,只有简单的错误输出。这在开发过程中是无法满足使用需求的。我们还需要更多的错误信息,比如错误发生在哪一行,具体的错误信息是什么。这就需要获取错误堆栈信息。下面简单记录一下常用的集中异常处理。
python mysql-connector简要说明
安装插件
1 | python -m pip install mysql-connector |
建立链接
1 | import mysql.connector |
conn就是mysql的链接对象,它可以提交开启事务、提交、回滚,也可以关闭来mysql断开链接
查询操作
执行查询,需要经过以下几个过程:
- 获取一个游标,数据操作都是基于游标来处理。链接的cursor方法会返回一个游标,如上面
conn.cursor()
就会返回游标。 - 调用游标的execute方法,执行sql。
- 获取执行结果,我们可以用fetchone()一次获取一条记录,也可以用fetchall(),一次性获取所有记录。
1
2
3
4
5
6
7
8
9
10
11cursor = cnn.cursor()
try:
sql_query = 'select name,age from stu ;'
cursor.execute(sql_query)
for name, age in cursor:
print (name, age)
except mysql.connector.Error as e:
print('query error!{}'.format(e))
finally:
cursor.close()
cnn.close()
pipenv与pyenv、pyenv-virtualenv的关系和使用
为什么要有版本管理
我们举个例子:
- 项目一要求用python 2.x
- 项目二要去python 3.x
如果服务器上要运行这两个项目,就需要安装两个版本。如果项目更多,需要的版本也越多,我们就需要有版本管理的概念。
为什么要有虚拟版本
上面我们看到,版本管理解决了,不同项目对python版本的需求。如果我们服务器上有增加了一个项目,情况如下,如果解决呢
- 项目一要求用python 2.x
- 项目二要去python 3.x,要求导入的requests包是1.x
- 项目三要去python 3.x,要去导入的requests包是2.x
我们看到项目二和项目三要去的是同样的版本,但是依赖的包是不同版本的,我们无法在一个版本上,同一个包安装不同的版本。这样容易造成混乱。因此就需要虚拟环境了。虚拟环境就是在所需的版本上,创建一个副本,在副本里进行依赖包的管理,这样不同的项目用自己的副本,就不会相互干扰。