python如何用sqlalchemy操作数据库
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python如何用sqlalchemy操作数据库相关的知识,希望对你有一定的参考价值。
工具:mysql python sqlalchemy
----------------------------------------
准备工作:
1.安装mysql
如果是window环境请参考 win7安装mysql
如果是linux环境请参考 --稍后补充
2.安装python
windows: win7安装python2和python3
linux: linux安装python36
linux python2.6.6以后的版本同样要通过源码包安装,看了下这位博主的这篇文章写的非常详细http://www.cnblogs.com/dudu/p/4294238.html
3.基于python安装第三方库sqlalchemy
直接用pip安装就行了
pip install sqlalchemy
pip3 install sqlalchemy
--------------------------------------------------------------------------
可以开始撸码了~~~~~~
我是基于python36写的,话不多说直接贴代码吧
第一步:创建数据库
第二步:创建数据库连接
# encoding:utf-8 from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column, INTEGER, String from sqlalchemy.orm import sessionmaker HOST_NAME = ‘127.0.0.1‘ # 数据库所在服务器ip,因为我是本地数据库所以这里是127.0.0.1 HOST_PORT = ‘3306‘ # 数据库端口 DATABASE_NAME = ‘pydb‘ # 数据库名 USER_NAME = ‘root‘ # 链接数据的用户名 PWD = ‘123456‘ # 链接数据库的密码 # DB_URI是固定的格式,因为我的数据库是mysql,所以按照这个格式写就行了 DB_URI = ‘mysql+pymysql://{0}:{1}@{2}:{3}/{4}?charset=utf8‘.format(USER_NAME,PWD,HOST_NAME,HOST_PORT,DATABASE_NAME) # 创建数据库连接 engine = create_engine(DB_URI)
第三步: 创建表
# -------------创建数据库-------------------------------------------------------------------------------- # 操作数据库的基类 Base = declarative_base(engine) class User(Base): """定义类其实就是创建一个表 create table user ( id int primary key auto_increment, user_name varchar(50) not null, password varchar(20) default ‘123456‘ ); """ __tablename__ = ‘user‘ # 表名 id = Column(INTEGER,primary_key=True, autoincrement=True) # id字段,主键,自增 user_name = Column(String(50), nullable=False) # 用户名字段 password = Column(String(20), nullable=False, default=‘123456‘) # 密码字段 def __repr__(self): """定义数据库查询返回的数据格式""" return ‘User(id="%s",username="%s",password="%s")‘ % (self.id, self.user_name,self.password) Base.metadata.create_all()
查看数据库,创建成功
第四步: 插入数据
1 # ------------插入数据--------------------------------------------------------------------- 2 # 创建会话 3 Session = sessionmaker(engine) 4 session = Session() 5 panda = User(user_name=‘panda‘, password=‘123456‘) 6 # 插入单条数据 7 session.add(panda) 8 user_list = [] 9 # 插入多条数据 10 user_list.append(User(user_name=‘test1‘, password=‘11111111‘)) 11 user_list.append(User(user_name=‘test2‘, password=‘22222222‘)) 12 user_list.append(User(user_name=‘test3‘, password=‘33333333‘)) 13 session.add_all(user_list) 14 session.commit()
查看数据库已经添加成功
第五步:查询数据
# select top 1 from user; res_first = session.query(User).first() print(res_first) # select *from user; res_all = session.query(User).all() print(res_all) # select *from user where user_name=‘panda‘; res_panda = session.query(User).filter_by(user_name=‘panda‘).all() print(res_panda) # select *from user where user_name=‘panda‘; res = session.query(User).filter(User.user_name == ‘panda‘).all() print(res)
运行结果如下,这里返回的格式是以class类的__repr__方法定义的
第六步: 更新数据
# update user set password = ‘654321‘ where user_name=‘panda‘; res = session.query(User).filter(User.user_name == ‘panda‘).all()[0] res.password = ‘654321‘ session.commit()
查看数据库已经更新成功
第七步: 删除数据
# delete from user where id=3; res = session.query(User).filter_by(user_name=‘test3‘).all()[0] session.delete(res) session.commit()
查看数据库已经删除成功
以上是关于python如何用sqlalchemy操作数据库的主要内容,如果未能解决你的问题,请参考以下文章