文章目录(Table of Contents)
简介
这一篇文章记录一下使用sqlalchemy
进行数据库的连接,以及连接之后的一些简单测试(测试是否连接成功)。在使用之前,我们需要确保下面两个库成功安装:
- pip install sqlalchemy
- pip install mysql-connector-python
上面的 mysql-connector-python 用于使用 python 连接 mysql。 由于 MySQL 服务器以独立的进程运行,并通过网络对外服务,所以,需要支持 Python 的MySQL 驱动来连接到 MySQL 服务器。MySQL 官方提供了 mysql-connector-python 驱动。
参考资料:廖雪峰 Python 教程-使用SQLAlchemy
连接 sqlite
连接数据库的URL形式:
- sqlite:/// + 文件路径
- 'sqlite:////tmp/test.db'
- 文件路径为:/tmp/test.db,这是一个绝对路径
- 'sqlite:///tmp/test.db'
- 文件路径为: tmp/test.db,这是一个相对路径
测试连接
当连接好数据库之后,我们可以使用下面的方法来测试一下是否连接成功:
- from sqlalchemy import create_engine
- # 连接数据库
- engine = create_engine('sqlite:///app.db',echo=True)
- # 执行查询语句
- users = engine.execute('select * from users')
- # 打印查询的内容
- for user in users:
- print(user)
接下来,我们看一下使用 session
(Session 是映射类和数据库沟通的桥梁,包含事务管理功能)来进行一些操作的代码实现:
- from sqlalchemy import create_engine
- from sqlalchemy.orm import sessionmaker
- # 链接数据库
- engine = create_engine('sqlite:///app.db',echo=True)
- # 创建session
- Session = sessionmaker(bind=engine)
- session = Session()
- # 进行查找
- name = session.query(Contact).filter(Contact.name=='myname').first()
- print(name)
连接 mysql
上面是关于连接sqlite,下面讲一下连接mysql,其实具体的方法和上面讲得差不多,我们再来叙述一下。首先是测试数据库是否连接成功:
- In[1]: from sqlalchemy import create_engine
- In[2]: engine = create_engine("mysql+mysqlconnector://root:root@localhost:3306/datbasename?charset=utf8", echo=True)
- In[6]: users = engine.execute('select * from users')
- 2018-03-21 20:56:09,419 INFO sqlalchemy.engine.base.Engine select * from users
- 2018-03-21 20:56:09,421 INFO sqlalchemy.engine.base.Engine ()
接下来使用 session 来进行一些操作:
- from sqlalchemy import create_engine
- from sqlalchemy.orm import sessionmaker
- engine = create_engine("mysql+mysqlconnector://root:root@localhost:3306/datbasename?charset=utf8", echo=True)
- # 创建session
- Session = sessionmaker(bind=engine)
- session = Session()
- names = session.query(User).all()
- for name in names:
- print(name.user_login)
- 微信公众号
- 关注微信公众号
- QQ群
- 我们的QQ群号
评论