Python3.x:SQLAlchemy操作数据库,,Python3.x:
Python3.x:SQLAlchemy操作数据库,,Python3.x:
Python3.x:SQLAlchemy操作数据库
前言
SQLAlchemy是一个ORM框架(Object Rational Mapping,对象关系映射),它可以帮助我们更加优雅、更加高效的实现数据库操作,而且还不限于mysql。
SQLAlchemy库安装
pip install sqlalchemy#安装mysqlpip install pymysql#安装mysql-connector2.2.3版本会报错:Unable to find Protobuf include directory.#所以我们指定安装的版本pip install mysql-connector==2.1.4
示例代码(mysql数据库)
# python3# author lizm# datetime 2018-01-28 12:00:00‘‘‘ Demo:sqlalchemy对mysql数据库的操作‘‘‘from sqlalchemy import Column,Integer, String, create_enginefrom sqlalchemy.orm import sessionmakerfrom sqlalchemy.ext.declarative import declarative_baseimport pymysql# 创建对象的基类:Base = declarative_base()# 定义Channel对象:class Channel(Base): # 表名 __tablename__ = ‘playback‘ # 表结构 # Column:行声明,可指定主键 Integer:数据类型 String:数据类型,可指定长度 id = Column(Integer,primary_key=True,autoincrement=True) channel_name = Column(String(45),unique=True, nullable=False) address = Column(String(80),unique=True, nullable=False) service_name = Column(String(45),unique=True, nullable=False) def __init__(self,id,channel_name,address,service_name): self.id = id self.channel_name = channel_name self.address = address self.service_name = service_name# 初始化数据库连接,# 传入参数:数据库类型+连接库+用户名+密码+主机,字符编码,是否打印建表细节engine = create_engine(‘mysql+mysqlconnector://root:[email protected]:3306/pythondb‘,encoding=‘utf-8‘)# 创建表Base.metadata.create_all(engine)# 创建DBSession类型:DBSession = sessionmaker(bind=engine)session = DBSession()# 增操作item1 = Channel(id=‘1‘,channel_name=‘cctv8‘,address=‘http://10.10.10.1/cctv8‘,service_name=‘news‘)session.add(item1)item2 = Channel(id=‘2‘,channel_name=‘cctv10‘,address=‘http://10.10.10.1/cctv10‘,service_name=‘sports‘)session.add(item2)item3 = Channel(id=‘3‘,channel_name=‘cctv12‘,address=‘http://10.10.10.1/cctv12‘,service_name=‘economics‘)session.add(item3)#提交数据session.commit()#关闭session.close()# 查操作session1 = DBSession()# 输出sql 语句print("查询sql语句:%s"%session1.query(Channel).filter(Channel.id < ‘3‘))# 返回的是一个类似列表的对象channel = session1.query(Channel).filter(Channel.id < ‘3‘).all()for i in range(len(channel)): print(channel[i].id) print(channel[i].channel_name) print(channel[i].address) print(channel[i].service_name)session1.close()# 改操作session2 = DBSession()session2.query(Channel).filter(Channel.id == ‘2‘).update({Channel.service_name: ‘movie‘}, synchronize_session=False)session2.commit()session2.close()## 查看修改结果session3 = DBSession()print(session3.query(Channel).filter(Channel.id == ‘2‘).one().service_name)session3.close()# 删操作session4 = DBSession()session4.query(Channel).filter(Channel.id == ‘3‘).delete()session4.commit()session4.close()
作者:整合侠
链接:http://www.cnblogs.com/lizm166/p/8370633.html
来源:博客园
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Python3.x:SQLAlchemy操作数据库
相关内容
- Python架构师手把手教你Scrapy 对接 Docker,scrapydocker,环境
- python + selenium 模拟键盘升级版PyUserInput,,前言在web自动
- Python基础数据类型考试题,python数据类型,# Python基础
- python 列表中的Update()函数,pythonupdate,简介Python 字
- python函数修饰器(decorator),pythondecorator,python语言本身
- 将Python脚本打包成可执行文件,,安装PyInstal
- 如何使用Visual Studio 2013编写python?,2013python,安装Visu
- 从0开始学Python,0基础小白,python小白,Python3学习第
- 零基础学习python_easygui(35课),python_easygui35, 今天
- python操作excel,pythonexcel,python操作ex
评论关闭