python学习之day11,,目录SqlAlche


目录

SqlAlchemy


SqlAlechemy

SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据API执行SQL并获取执行结果。

技术分享

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> cx_Oracle    oracle+cx_oracle://user:pass@host:port/dbname[?key=value&key=value...] 更多详见:http://docs.sqlalchemy.org/en/latest/dialects/index.html

创建表(老方法)

from sqlalchemy import create_engine, Table, Column, Integer, String, MetaData, ForeignKeymetadata = MetaData()user = Table(‘user‘, metadata,    Column(‘id‘, Integer, primary_key=True),    Column(‘name‘, String(20)),)color = Table(‘color‘, metadata,    Column(‘id‘, Integer, primary_key=True),    Column(‘name‘, String(20)),)   #表结构engine = create_engine("mysql+pymysql://root:1234@127.0.0.1:3306/mydb?charset=utf8", max_overflow=5)#链接数据库metadata.create_all(engine)
技术分享
 1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3  4 from sqlalchemy import create_engine, Table, Column, Integer, String, MetaData, ForeignKey 5  6 metadata = MetaData() 7  8 user = Table(‘user‘, metadata, 9     Column(‘id‘, Integer, primary_key=True),10     Column(‘name‘, String(20)),11 )12 13 color = Table(‘color‘, metadata,14     Column(‘id‘, Integer, primary_key=True),15     Column(‘name‘, String(20)),16 )17 engine = create_engine("mysql+mysqldb://root:123@127.0.0.1:3306/s11", max_overflow=5)18 19 conn = engine.connect()20 21 # 创建SQL语句,INSERT INTO "user" (id, name) VALUES (:id, :name)22 conn.execute(user.insert(),{‘id‘:7,‘name‘:‘seven‘})23 conn.close()24 25 # sql = user.insert().values(id=123, name=‘wu‘)26 # conn.execute(sql)27 # conn.close()28 29 # sql = user.delete().where(user.c.id > 1)30 31 # sql = user.update().values(fullname=user.c.name)32 # sql = user.update().where(user.c.name == ‘jack‘).values(name=‘ed‘)33 34 # sql = select([user, ])35 # sql = select([user.c.id, ])36 # sql = select([user.c.name, color.c.name]).where(user.c.id==color.c.id)37 # sql = select([user.c.name]).order_by(user.c.name)38 # sql = select([user]).group_by(user.c.name)39 40 # result = conn.execute(sql)41 # print result.fetchall()42 # conn.close()
增删改查

创建表(新方法)

#!/usr/bin/env python# -*- coding:utf-8 -*-from sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import Column,Integer,Stringfrom sqlalchemy.orm import sessionmakerfrom sqlalchemy import create_engine,and_,or_Base = declarative_base()       #生成一个SqlORM的基类engine = create_engine("mysql+mysqldb://root:123@127.0.0.1:3306/s12",echo=True)class Host(Base):    __tablename__ = ‘hosts‘    id = Column(Integer,primary_key=True,autoincrement=True)    hostname = Column(String(64),unique=True,nullable=False)    ip_addr = Column(String(128),unique=True,nullable=False)    port = Column(Integer,default=22)Base.metadata.create_all(engine)     #创建所有表结构if __name__ == ‘__main__‘:    SessionCls = sessionmaker(bind=engine)  #创建与数据库的会话    session = SessionCls()  #链接的实例    # add(添加数据)    # h2 = Host(hostname=‘localhost‘,ip_addr=‘127.0.0.1‘)    # h3 = Host(hostname=‘ubuntu5‘,ip_addr=‘192.168.1.24‘,port=20000)    # session.add(h2)    # session.add(h3)    # session.add_all([h2,h3])    # update(修改数据)    # obj = session.query(Host).filter(Host.hostname==‘localhost‘).first()#查询数据    # print("++>",obj)    # obj.hostname = "test server"    # delete(删除数据)    # obj = session.query(Host).filter(Host.hostname==‘test server‘).first()    # session.delete(obj)    # session.commit()
技术分享
 1 # ########## 增 ########## 2 # u = User(id=2, name=‘sb‘) 3 # session.add(u) 4 # session.add_all([ 5 #     User(id=3, name=‘sb‘), 6 #     User(id=4, name=‘sb‘) 7 # ]) 8 # session.commit() 9  10 # ########## 删除 ##########11 # session.query(User).filter(User.id > 2).delete()12 # session.commit()13  14 # ########## 修改 ##########15 # session.query(User).filter(User.id > 2).update({‘cluster_id‘ : 0})16 # session.commit()17 # ########## 查 ##########18 # ret = session.query(User).filter_by(name=‘sb‘).first()19  20 # ret = session.query(User).filter_by(name=‘sb‘).all()21 # print ret22  23 # ret = session.query(User).filter(User.name.in_([‘sb‘,‘bb‘])).all()24 # print ret25  26 # ret = session.query(User.name.label(‘name_label‘)).all()27 # print ret,type(ret)28  29 # ret = session.query(User).order_by(User.id).all()30 # print ret31  32 # ret = session.query(User).order_by(User.id)[1:3]33 # print ret34 # session.commit()
增删改查

python学习之day11

相关内容

    暂无相关文章

评论关闭