SQLAlchemy使用学习
来源:互联网 发布:cms监控软件操作说明 编辑:程序博客网 时间:2024/06/01 22:16
一、sqlalchemy安装
安装sqlalchemy
pip install SQLAlchemy
二、sqlalchemy的基本使用
Dialect用于和数据API进行交流,根据配置文件的不同调用不同的数据库API,从而实现对数据库的操作,如:
MySQL-Python mysql+mysqldb://<user>:<password>@<host>[:<port>]/<dbname>pymysql mysql+pymysql://<username>:<password>@<host>/<dbname>[?<options>]MySQL-Connector mysql+mysqlconnector://<user>:<password>@<host>[:<port>]/<dbname>
1、创建表
#coding=utf-8import sqlalchemyfrom sqlalchemy import create_enginefrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import Column, Integer, String# 创建实例,并连接test库HOSTNAME = '192.168.1.38'DATEBASE = 'awoa'USERNAME = 'root'PASSWORD = '123456'PORT = 3306DB_URI = 'mysql://{}:{}@{}:{}/{}?charset=utf8'.format(USERNAME, PASSWORD, HOSTNAME, PORT, DATEBASE)engine = create_engine(DB_URI,echo=True)# echo=True 显示信息Base = declarative_base() # 生成orm基类class User(Base): __tablename__ = 'user' # 表名 id = Column(Integer, primary_key=True) name = Column(String(32)) password = Column(String(64))Base.metadata.create_all(engine) #创建表结构 (这里是父类调子类)
2、插入数据
2.1 插入一条数据
#创建游标def creat_session(): session = None try: engine = create_engine(DB_URI, echo=False) Base.metadata.bind = engine DBSession = sessionmaker(bind=engine) #实例和engine绑定 session = DBSession() # 生成session实例,相当于游标 except Exception, e: print "creat_session error:%s" % e return session#插入一条语句def insert_one(): session=creat_session() user=User(name='lijiajia',password='123456') # 生成你要创建的数据对象 print user.name,user.password,user.id # 此时还没创建对象呢,打印user.id结果发现还是None session.add(user) #把要创建的对象添加到这个session里 print user.name,user.id #此时也依然还没创建 session.commit()#提交数据,创建数据。 session.close()#关闭游标insert_one()
2.2 插入多条语句
#插入多条语句def insert_many(): session = creat_session() user1=User(name='zhangjia',password='123456') user2=User(name='wangjia',password='abcde') session.add(user1) session.add(user2) session.commit() session.close()
3、查询语句
3.1查询一条语句
def select(): session=creat_session() myuser=session.query(User).filter_by(name='lijiajia').first() print myuser session.close()
此时你看到的输出是这样的
<__main__.User object at 0x0000000003990CF8>
sqlalchemy把返回的数据映射成一个对象啦,这样你调用每个字段就可以跟调用对象属性一样
print 'id: ',myuser.id,' name: ',myuser.name,' password',myuser.password#输出id: 1 name: lijiajia password 123456
3.2 查询多条
def select(): session=creat_session() user=session.query(User).filter_by(name='lijiajia').all() for myuser in user: print 'id: ',myuser.id,' name: ',myuser.name,' password',myuser.password session.close() #输出id: 1 name: lijiajia password 123456id: 2 name: lijiajia password 123456
4 更新数据
4.1 第一种更新方式
def update1(): #更新name='lijiajia'的password为'abcde' session=creat_session() session.query(User).filter_by(name='lijiajia').update({User.password:'abcde'}) session.commit()#提交事务 #查看结果 res=session.query(User).filter_by(name='lijiajia').all() for each in res: print 'name:',each.name,' password:',each.password session.close()#输出name: lijiajia password: abcdename: lijiajia password: abcde
4.2 第二种更新方式
def update2(): #更新 name='zhangjia'的password为'aiwen' session=creat_session() user=session.query(User).filter_by(name='zhangjia').all() for each in user: if each !=None: each.password='aiwen' session.commit() res=session.query(User).filter_by(name='zhangjia').all() for a in res: print 'name:',a.name,' password:',a.password session.close()#输出结果:name: zhangjia password: aiwenname: zhangjia password: aiwen
5、删除数据
def delete(): session=creat_session() user=session.query(User).filter_by(name='zhangjia').first() print 'zhangjia删除前id:',user.id #删除全部记录 user1=session.query(User).filter_by(name='wangjia').all() #query.all()返回的一个类似列表的对像,删除所有记录需要将列表中的每一个对象都添加到session中。 [session.delete(u) for u in user1] session.commit() res1=session.query(User).filter_by(name='zhangjia',id=user.id).first() print 'zhangjia删除后user的id',res1 res2=session.query(User).filter_by(name='wangjia').all() print 'wangjia删除的结果',res2,len(res2) session.close()#输出结果zhangjia删除前id: 9zhangjia删除后user的id Nonewangjia删除的结果 [] 0
阅读全文
0 0
- SQLAlchemy使用学习
- sqlalchemy的安装及学习使用
- python学习——使用SQLAlchemy
- SqlAlchemy学习
- SQLAlchemy学习
- 使用 SQLAlchemy
- sqlalchemy使用
- 使用sqlalchemy
- 使用SQLAlchemy
- 使用SQLAlchemy
- 使用 sqlalchemy
- 使用SQLAlchemy
- 【python学习笔记】python使用sqlalchemy连接mysql数据库
- python(十二)下:ORM框架SQLAlchemy使用学习
- python(十二)下:ORM框架SQLAlchemy使用学习
- sqlalchemy学习笔记
- sqlalchemy学习总结
- sqlalchemy 学习资料
- 安装 MySQL ODBC 驱动程序
- java获取文件路径
- HTTP 协议入门
- Qt Charts 模块的 C++ 类及描述
- 机器学习中的数学(1)-回归(regression)、梯度下降(gradient descent)
- SQLAlchemy使用学习
- 关于于渊的一个操作系统的实现第二版学习之第二章bochs裸机启动的练习
- linux上同个tomcat服务器布署多个静态网站项目配置访问链接
- Linux下的SVN服务器搭建
- 28.Implement strStr() leetcode java
- STM32CubeMX+FreeRTOS实验---使用两个实例,共用一个task
- 相对有序排序算法
- ExtJs6学习(一)【ExtJs介绍】
- 使用mybatis分页插件PageHelper5.0.0遇到的问题总结