python----使用sqlalchemy操作mysql数据库

准备

使用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)



在这里插入图片描述
Table类构造方法
在这里插入图片描述
Column类构造方法
在这里插入图片描述
2.添加数据

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



在这里插入图片描述
3.查询

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()








在这里插入图片描述
修改和删除都是在查询的基础上进行的,此处就省略了。。。

你可能感兴趣的:(python)