sqlalchemy连接数据库

  • A+
所属分类:Flask Python库介绍
摘要这一篇文章会介绍一些关于sqlalchemy来连接mysql和sqlite,并且一些测试是否连接成功的方法。

这一篇文章记录一下使用sqlalchemy进行数据库的连接,以及连接之后的一些简单测试(测试是否连接成功)。

文章目录(Table of Contents)

连接sqlite

连接数据库的URL形式:
sqlite:/// + 文件路径

接下来看两个例子:

  • 'sqlite:////tmp/test.db'
  • 文件路径为:/tmp/test.db,这是一个绝对路径
  • ---
  • 'sqlite:///tmp/test.db'
  • 文件路径为: tmp/test.db,这是一个相对路径

测试连接

当连接好数据库之后,我们可以使用下面的方法来测试一下是否连接成功

 

  1. from sqlalchemy import create_engine
  2. # 连接数据库
  3. engine = create_engine('sqlite:///app.db',echo=True)
  4. # 执行查询语句
  5. users = engine.execute('select * from users')
  6. # 打印查询的内容
  7. for user in users:
  8.     print(user)

 

接下来,我们看一下使用session(Session 是映射类和数据库沟通的桥梁,包含事务管理功能)来进行一些操作的代码实现

 

  1. from sqlalchemy import create_engine
  2. from sqlalchemy.orm import sessionmaker
  3. # 链接数据库
  4. engine = create_engine('sqlite:///app.db',echo=True)
  5. # 创建session
  6. Session = sessionmaker(bind=engine)
  7. session = Session()
  8. # 进行查找
  9. name = session.query(Contact).filter(Contact.name=='myname').first()
  10. print(name)

 

连接mysql

上面是关于连接sqlite,下面讲一下连接mysql,其实具体的方法和上面讲得差不多,我们再来叙述一下。

首先是测试数据库是否连接成功

In[1]: from sqlalchemy import create_engine
In[2]: engine = create_engine("mysql://root:root@localhost:3306/datbasename?charset=utf8",encoding="utf-8", 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 ()
In[7]: for i in users:
   ...:     print(i)

接下来使用session来进行一些操作:

  1. from sqlalchemy import create_engine
  2. from sqlalchemy.orm import sessionmaker
  3. engine = create_engine("mysql://root:root@localhost:3306/datbasename?charset=utf8",encoding="utf-8", echo=True)
  4. # 创建session
  5. Session = sessionmaker(bind=engine)
  6. session = Session()
  7. names = session.query(User).all()
  8. for name in names:
  9.     print(name.user_login)

 

  • 微信公众号
  • 关注微信公众号
  • weinxin
  • QQ群
  • 我们的QQ群号
  • weinxin
王 茂南

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: