使用sqlalchemy前要先安装pymysql
数据库 我是使用docker快速创建的
现在已经运行起来了
1.创建表格
from sqlalchemy import create_engine
#初始化连接 使用sqlalchemy时 要先安装pymysql 否则连接失败
engine = create_engine('mysql+pymysql://root:[email protected]/user', echo=True)
#获得数据库连接
conn = engine.connect()
sql = '''create table usercode(
id int not null primary key,
name varchar(50),
code varchar(50)
);
'''
#执行sql语句
conn.execute(sql)
mysql+pymysql:表示数据库连接方式
root:123456 代表用户名和密码
@192.168.1.129 数据库所在的ip地址 默认端口3306
user 对应的数据库
最后这个 echo 标志是设置sqlachemy日志的快捷方式,它是通过python的标准实现的。 logging 模块。启用它后,我们将看到生成的所有SQL
这种是原始的通过sql语句来创建表格
下面再介绍使用ORM关系映射的方式来创建表格
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String
#初始化连接 使用sqlalchemy时 要先安装pymysql 否则连接失败
engine = create_engine('mysql+pymysql://root:[email protected]/user', echo=True)
#先绑定一个数据源的metadata,metadata用来操作数据库
metadata = MetaData(engine)
student = Table('student', metadata,
Column('id', Integer, primary_key=True),
Column('name', String(50), ),
Column('age', Integer),
Column('address', String(10)),
)
metadata.create_all(engine)
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String
from sqlalchemy.orm import sessionmaker
from python_03 import user
from sqlalchemy.ext.declarative import declarative_base
#初始化连接 使用sqlalchemy时 要先安装pymysql 否则连接失败
engine = create_engine('mysql+pymysql://root:[email protected]/user', echo=True)
#创建会话工厂
DBSession = sessionmaker(bind=engine)
#生产session对象
session = DBSession()
#UserCode 必须是orm映射类
user1 =user.UserCode(id=1,name='小明', code='100860')
user2 =user.UserCode(id=2,name='小李', code='100861')
#批量添加
session.add_all([user1, user2])
session.commit()
session.close()
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String
Base = declarative_base()
class UserCode(Base):
__tablename__= 'usercode'
id = Column(Integer, primary_key=True)
name = Column(String(100))
code = Column(String(100))
def __init__(self, id, name, code):
self.id =id
self.name =name
self.code =code
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String
from sqlalchemy.orm import sessionmaker
from python_03 import user
from sqlalchemy.ext.declarative import declarative_base
#初始化连接 使用sqlalchemy时 要先安装pymysql 否则连接失败
engine = create_engine('mysql+pymysql://root:[email protected]/user', echo=True)
#创建会话工厂
DBSession = sessionmaker(bind=engine)
#生产session对象
session = DBSession()
#UserCode 必须是orm映射类
usercode=user.UserCode
res = session.query(usercode).filter(usercode.id.in_([1,2])).filter_by(name='小李')
for value in res:
print(value.name)
session.commit()
session.close()